我想(为了好玩)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...
然而,它会将它打印成各自的行。
此外,我只能输入print('LOADING...')
,因为它会立即打印,而不是一字一封地打印sleep(0.1)
。
这个例子很简单,但它提出了一个更普遍的问题:是否可以将多个字符串打印到一行,而在字符串打印之间执行其他功能?
答案 0 :(得分:5)
在Python2中,如果在字符串后面加上逗号,则print不会添加新行。但是,输出可能是缓冲的,所以要看到字符打印得很慢,你可能还需要刷新标准输出:
from time import sleep
import sys
print 'L',
sys.stdout.flush()
sleep(0.1)
所以要慢慢打印一些文字,你可以使用这样的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')
在Python3中,更改
print c,
到
print(c, end='')
答案 1 :(得分:2)
您也可以简单地尝试
from time import sleep
loading = 'LOADING...'
for i in range(10):
print(loading[i], sep=' ', end=' ', flush=True); sleep(0.5)
答案 2 :(得分:1)
from time import sleep
myList = ['Let this be the first line', 'Followed by a second line', 'and a third line']
for s in myList:
print(s) ; sleep(0.6)
答案 3 :(得分:0)
更新以在一行上打印所有字母。
from time import sleep
import sys
sys.stdout.write ('L') ; sleep(0.1)
sys.stdout.write ('O') ; sleep(0.1)
sys.stdout.write ('A') ; sleep(0.1)
...
sys.stdout.write ('\n')
等...
甚至:
from time import sleep
import sys
output = 'LOA...'
for char in output:
sys.stdout.write ('%s' % char)
sleep (0.1)
sys.stdout.write ('\n')
答案 4 :(得分:0)
要一次输入一个字母,您只需要这样做:
import sys
import time
yourWords = "whatever you want to type letter by letter"
for char in yourWords:
sys.stdout.write(char)
time.sleep(0.1)
答案 5 :(得分:0)
import time
import sys
def code(text, delay=0.07):
for c in text:
sys.stdout.write(c)
sys.stdout.flush()
time.sleep(delay)
print()
代替打印类型代码
答案 6 :(得分:-1)
如果您传递字符串的长度,则自动化程度更高。
第一种方法 -
from time import sleep
loading = 'LOADING...'
for i in range(len(loading)):
print(loading[i], end='')
sleep(0.5)
第二种方法 -
from time import sleep
for i in 'LOADING...':
print(i, end='')
sleep(0.5)