如何在同一行上打印这些输出?

时间:2017-04-15 16:36:17

标签: python random printing range line

代码是这样的:

for i in range(0, 20):
        print(random.choice(string.ascii_letters + string.digits + string.punctuation)) 

唉,它会在新行上打印每个字符。如何在一张纸上打印?

2 个答案:

答案 0 :(得分:1)

有几种选择:

  • endoptions = string.ascii_letters + string.digits + string.punctuation for i in range(0, 20): print(random.choice(options),end='')个参数。如果将其设置为空字符串,则打印换行符。

    所以:

    options

    (我引入了变量''.join()以使其更具可读性)

  • 您可以先使用print(''.join(random.choice(options) for _ in range(20)))构建整个结果并打印出来:

    <expr> for <var> in <iterable>

    此处options是一个生成器:它将生成20个随机值(RxJava 1之外)并将它们连接在一起。

答案 1 :(得分:0)

另一种方法是使用这样的表达式:

chars = [random.choice(options) for _ in range(20)]

然后简单地打印字符:

print(chars)

生成的输出可能如下所示:

[6, 9, 5, 79, 78, 9, 2, 7, 9, 3, 3, 7, 9, 9, 6, 5, 78, 79, 5, 78]

给出了这样的选择:

options = [1,2,3,4,5,6,7] + [9,78,9,78,79,98,7]