想要在 Python 中单行打印多次。

17 浏览
0 Comments

想要在 Python 中单行打印多次。

这个问题已经有答案了

如何刷新print函数的输出?

我想制作一个程序,将文本输出为实时输入的样式。为此,我会打印一个单词并等待0.2秒,然后打印下一个单词。

我看到了这个网站:https://www.tutorialspoint.com/how-to-print-in-same-line-in-python。但问题在于print()函数会一直收集要打印的字符,然后在循环结束后将它们刷新出来。所以我无法得到想要的结果。

这是代码:

import time
time.sleep(2)
welcome = "Welcome. We will plot a graph in this program"
for i in range(len(welcome)):
    time.sleep(0.2)
    print(welcome[i], end="")

请帮帮我。

谢谢。

admin 更改状态以发布 2023年5月24日
0
0 Comments

你需要刷新标准输出,因为你没有在字符串末尾使用 '\n'。

import sys
import numpy
import pandas
import matplotlib.pyplot as pl
import time
time.sleep(2)
welcome = "Welcome. We will plot a graph in this program"
for i in range(len(welcome)):
    time.sleep(0.2)
    print(welcome[i], end="")
    sys.stdout.flush()

更好的解释可以在 这里 找到。

另外一个解释可以在 这里 找到。

0
0 Comments

在 Python 3 中,你可以使用 flush=True

for character in welcome:
    print(character, end="", flush=True)
    time.sleep(0.2)

我通过将 for i in range(len(welcome)) 替换为 for word in welcome 来使代码更清晰,这样你只需要打印 character

0