python - 循环水平打印

标签 python python-3.x

我正在尝试在命令行上实现 snort 效果。

snort = "SNoooOOO000oooRT"

for char in snort:
            time.sleep(0.1)
            print(char,)

现在,这段代码是垂直打印的:

S
N
o
o
o
O
O
O
0
0
0
o
o
o
R
T

当我可以让它水平打印时,我就放宽了 0.1 秒的等待时间来创建所需的效果。

干杯

最佳答案

@Patrick Artner 的回答是正确的,但我只是想添加一个适用于某些 IDE 以及 Windows 命令提示符的用例。

为了获得所需的动画,您还必须包含 sys,并在循环的每次迭代中使用 sys.stdout.flush(),如下所示:

import time
import sys

snort = "SNoooOOO000oooRT"

for char in snort:
    sys.stdout.flush()
    time.sleep(0.1)
    print(char,end='')

如果您不在命令提示符(或某些 IDE)中执行此操作,程序将在每次循环迭代休眠后输出整个字符串。

实际上,您还可以通过在打印语句中包含 flush 参数来强制 print() 刷新输出缓冲区。所以你可以避免导入 sys 如果你这样做:

print(char,end='', flush=True)

关于python - 循环水平打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49074902/

相关文章:

python - 使用 numpy.genfromtxt 时如何保留以减号开头的列名称?

python - 无法从 Python 中的子目录导入 *

python - 如何为现有项目生成 asgi.py?

python - ufunc bitwise_xor 的类型错误

python - session 在本地主机上的两个 Flask 应用程序之间共享

python - 如何将某些内容添加到属性中?

android - 如何使用 Kivy 检测操作系统/外围设备?

python - 在 Matplotlib 中隐藏轴外的区域

python - 如何使用 Python ftplib 通过 FTP 下载文件

Python 文件存在性检查循环崩溃 - 除非我添加打印语句