我正在尝试在命令行上进行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秒,以创造所需的效果。
干杯
答案 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='')