代码是这样的:
for i in range(0, 20):
print(random.choice(string.ascii_letters + string.digits + string.punctuation))
唉,它会在新行上打印每个字符。如何在一张纸上打印?
答案 0 :(得分:1)
有几种选择:
end
有options = 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]