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)中间一个字母一个字母地打印。
这个例子很简单,但提出了一个更普遍的问题:是否可以将多个字符串打印到一行,而在打印字符串之间执行其他功能?
在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)
| 归档时间: |
|
| 查看次数: |
12674 次 |
| 最近记录: |