循环水平打印

时间:2018-03-02 18:05:22

标签: 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秒,以创造所需的效果。

干杯

3 个答案:

答案 0 :(得分:3)

@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)中执行此操作,程序将在循环的每次迭代后睡眠后输出整个字符串。

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

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

答案 1 :(得分:2)

指定print command的结束字符 -  如果没有具体给出,它默认为换行符。这就是为什么单独的印刷品会以新的品牌结束:

import time
snort = "SNoooOOO000oooRT"

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

也很有用:sep=''插件:

print(*[1,2,3,4,5,6,7,8], sep='+')
print(*list("Done"),sep='      ') 

输出:

1+2+3+4+5+6+7+8
D      o      n      e

答案 2 :(得分:1)

print(char,)
  

替换为下面的行print语句取任何结束参数   字符串或字符

print(char,end='')