的代碼是這樣的:如何在同一行上打印這些輸出?
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, –