提问人:тнαт ҩυιεт кιᴅ ϟ 提问时间:10/22/2023 更新时间:10/22/2023 访问量:21
在循环中使用 print 的结束参数时出现奇怪的问题
Strange problem while using print's end argument in a loop
问:
> python version 3.11.6 > os: Windows > Idle: Visual studio code (Latest version)
我的代码如下所示:
from time import sleep
x = [
"H",
"E",
"L",
"L",
"O"
]
for i in x:
print(i, end="")
sleep(.5)
当我运行这个预期输出时: H 等待 E 等待 L 等待 L 等待 O
但输出是:等待很久,然后立即所有字符。
但是为什么?
我注意到当我不使用结束参数代码时效果很好。
“”附加信息“”:
也尝试使用同样的问题。sys.stdout.write()
答:
2赞
MD Kawsar
10/22/2023
#1
在 print 函数中使用参数时,它会禁止显示通常在每个 print 语句末尾添加的换行符 ()。end=""
\n
print
您可以在函数中使用参数来解决此问题:flush=True
print
from time import sleep
x = [
"H",
"E",
"L",
"L",
"O"
]
for i in x:
print(i, end="", flush=True)
sleep(.5)
作为替代方案,您可以通过组合和 to to 获得相同的结果:sys.stdout.write()
sys.stdout.flush()
import sys
from time import sleep
x = [
"H",
"E",
"L",
"L",
"O"
]
for i in x:
sys.stdout.write(i)
sys.stdout.flush() # Flush the output buffer
sleep(.5)
评论
0赞
тнαт ҩυιεт кιᴅ ϟ
10/22/2023
您能否澄清一下为什么当我们使用 flush=True 时不会出现问题?还有为什么当 end=“”
评论