gpt4 book ai didi

python - 循环中一次打印单个字符

转载 作者:太空宇宙 更新时间:2023-11-03 18:45:00 24 4
gpt4 key购买 nike

我想一次打印一行中的字符。这段代码最终要做的是一次读取整行一个字符(每个字符之间有一个暂停,所以我知道它正在正确地迭代字符),然后当它完成该行时,它将打印所有字符一次。

for line in lines:
for ch in line:
print(ch, end = ' ')
os.system("pause")

但是,如果我这样做:

for line in lines:
for ch in line:
print(ch, end = '\n') #same effect as print(ch)
os.system("pause")

它将打印一个带有换行符的字符,然后系统暂停。

为什么在第一种情况下无法正确打印,但在第二种情况下可以正常打印?

此外,我刚刚进行了随机测试:

print ("is", end=' ')
os.system("pause")
print("newline?")

直到系统暂停后它才打印我的消息。为什么它在暂停之前不打印“is”?似乎 print() 函数有一些隐藏的工作原理,但我不明白。有人能解释一下吗?

最佳答案

您的输出正在缓冲:输出将被保留,直到发送换行符为止,因为一次打印一行比一次打印一个字符更有效。

如果您愿意,可以在每个 print() 之后放置 sys.stdout.flush()Other solutions here 。就我个人而言,我有点喜欢包装式的。您可以将其与上下文管理器结合起来,在 with block 中设置和恢复 stdout 以获得最大程度的 Pythonicity。

关于python - 循环中一次打印单个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19730216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com