如何让我的 Print Statement 只打印一行?
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
我不确定这是否是家庭作业 project/question 但如果不是,我猜你可以使用 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
就不会被换行符分隔,这是默认行为。此外,在这里使用 range
迭代器与 for
而不是 while
.
是有意义的
Note: I've taken the liberty to cut the sleep time in half, so it's easier to test it out.
import random
import time
All = "abcdefghijklmnopqrstuvwxyz1234567890"
for _ in range(6):
time.sleep(0.5)
print(All[random.randint(1, 35)], end='')
在这个程序中,我试图将我的代码打印为“这里的随机字母”而不是“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
我不确定这是否是家庭作业 project/question 但如果不是,我猜你可以使用 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
就不会被换行符分隔,这是默认行为。此外,在这里使用 range
迭代器与 for
而不是 while
.
Note: I've taken the liberty to cut the sleep time in half, so it's easier to test it out.
import random
import time
All = "abcdefghijklmnopqrstuvwxyz1234567890"
for _ in range(6):
time.sleep(0.5)
print(All[random.randint(1, 35)], end='')