想要在单行 Python 中多次打印 [重复]

Posted

技术标签:

【中文标题】想要在单行 Python 中多次打印 [重复]【英文标题】:Want to print multiple times in single line Python [duplicate] 【发布时间】:2021-07-25 20:57:35 【问题描述】:

我想制作一个程序来输出文本,就好像它是实时输入的一样。为此,我正在打印一个单词并等待 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="")

请帮助我。 谢谢。

【问题讨论】:

这能回答你的问题吗? I can't simulate slow printing, always ends in error 很奇怪,我只是尝试了我用来回答这个问题的例子,但它不再起作用了。它以前肯定有效,否则我不会回答这个问题。我不确定发生了什么。 关于我自己的评论;我想我在较旧的 python 安装中测试了上面的示例。 flush=True 解决了这个问题。 【参考方案1】:

在 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

【讨论】:

更喜欢这个答案。 让它更“栩栩如生”import random 然后time.sleep(random.uniform(0.05, 0.5))【参考方案2】:

您需要刷新标准输出,因为您没有在字符串末尾使用 '\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()

更好的解释here.

另一个:Usage of sys.stdout.flush() method

【讨论】:

感谢您解决问题并提供必要的解释。 我有另一种方法来刷新它:***.com/questions/230751/… 它更简单,不需要 sys 模块

以上是关于想要在单行 Python 中多次打印 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

多次重复打印独特元素

在文件中打印单行的最快方法

Python:使用jsonpickle无法两次或多次打印同一个对象。

所以我正在制作一个程序,可以根据需要多次重复向用户打招呼,但是当他们想要继续时,它不会显示该代码

多次重复每一行并添加升序数字

jQuery:停止在多次翻转时重复动画?