的代码是这样的:如何在同一行上打印这些输出?
for i in range(0, 20):
print(random.choice(string.ascii_letters + string.digits + string.punctuation))
唉,它打印在新的一行的每个字符。我如何让他们打印一个?
的代码是这样的:如何在同一行上打印这些输出?
for i in range(0, 20):
print(random.choice(string.ascii_letters + string.digits + string.punctuation))
唉,它打印在新的一行的每个字符。我如何让他们打印一个?
有几种选择:
print(..)
有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>
是一个生成器:它将生成20个随机值(在options
之外)和jo在他们在一起。
另一种方法是使用这样的表达:
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]
'打印( “... ”结束=“ ”)'(假设的Python 3)或'sys.stdout.write函数(“ ...”)' – Vallentin
在蟒2.7放的情况下,在表达的结尾。打印var, –