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

时间:2013-07-02 17:54:06

标签: python console formatting format 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...

然而,它会将它打印成各自的行。

此外,我只能输入print('LOADING...'),因为它会立即打印,而不是一字一封地打印sleep(0.1)

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

7 个答案:

答案 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)