Python:打印到一行,每次打印之间有时间延迟

Mar*_*zyk 3 python format console formatting string-formatting

我想(出于娱乐目的)将python打印出来“ LOADING ...”进行控制台。难点是我想逐个字母打印它们之间的睡眠时间为0.1秒(ish)。到目前为止,我做到了:

from time import sleep
print('L') ; sleep(0.1)
print('O') ; sleep(0.1)
print('A') ; sleep(0.1)
etc...
Run Code Online (Sandbox Code Playgroud)

但是,这会将其分别打印到单独的行中。

我也不能只输入print('LOADING...')文字,因为它会即时打印,而不是sleep(0.1)中间一个字母一个字母地打印。

这个例子很简单,但提出了一个更普遍的问题:是否可以将多个字符串打印到一行,而在打印字符串之间执行其他功能?

unu*_*tbu 5

在Python2中,如果在字符串后加上逗号,则print不会添加新行。但是,输出可能会被缓冲,因此要查看打印缓慢的字符,您可能还需要刷新标准输出:

from time import sleep
import sys
print 'L',
sys.stdout.flush()
sleep(0.1)
Run Code Online (Sandbox Code Playgroud)

因此,要缓慢打印一些文本,可以使用for-loop如下所示的代码:

from time import sleep
import sys

def print_slowly(text):
    for c in text:
        print c,
        sys.stdout.flush()
        sleep(0.5)

print_slowly('LOA')
Run Code Online (Sandbox Code Playgroud)

在Python3中,更改

print c,
Run Code Online (Sandbox Code Playgroud)

print(c, end='')
Run Code Online (Sandbox Code Playgroud)


小智 5

你也可以简单地试试这个

from time import sleep
loading = 'LOADING...'
for i in range(10):
    print(loading[i], sep=' ', end=' ', flush=True); sleep(0.5)
Run Code Online (Sandbox Code Playgroud)