[英]How do I make it so that the print statement stays on the same line while having my input to next one down
[英]How do I make my Print Statement print on only one line?
在這個程序中,我試圖將我的代碼打印為“這里的隨機字母”而不是“r”“a”“n”“d”“o”“m”等。
import random
import time
All = "abcdefghijklmnopqrstuvwxyz1234567890"
i = 0
while i < 6:
time.sleep(1)
print(All[random.randint(1,35)])
i += 1
干得好!
import random import time All = "abcdefghijklmnopqrstuvwxyz1234567890" i = 0 s = "" while i < 6: time.sleep(1) s += All[random.randint(1,35)] i += 1 print(s)
每個打印語句都以換行符結尾,因此您需要先“構建”您的字符串(在本例中為 s),然后再打印一次。
嘗試這個。
import random
import time
import sys
All = "abcdefghijklmnopqrstuvwxyz1234567890"
i = 0
someString = ""
while i < 6:
time.sleep(1)
print()
sys.stdout.write("\r "+str(All[random.randint(1,35)]))
sys.stdout.flush()
i += 1
我不確定這是否是作業項目/問題,但如果不是,我想您可以使用random.sample
將它們random.sample
(我將取消sleep
,因為似乎不需要它,您也沒有解釋它的推理) :
from random import sample
s = "abcdefghijklmnopqrstuvwxyz1234567890"
print(*sample(s, k=len(s)), sep='')
示例結果:
urftloqb38swz1ma9x5yg4p2ceijdhnk07v6
同樣僅供參考,您正在使用的字符串可以使用字符串庫以務實的方式制作:
>>> import string
>>> string.ascii_lowercase + string.digits
abcdefghijklmnopqrstuvwxyz0123456789
它確實在1
之前而不是最后有0
,但考慮到你在做什么,它不應該有任何有意義的區別。
您可以將end=''
傳遞給print
語句,以便后續的print
不會被換行符分隔,這是默認行為。 此外,在這里使用for
而不是while
的range
迭代器是有意義的。
注意:我冒昧地將睡眠時間減少了一半,因此更容易測試。
import random
import time
All = "abcdefghijklmnopqrstuvwxyz1234567890"
for _ in range(6):
time.sleep(0.5)
print(All[random.randint(1, 35)], end='')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.