4

我想让(为了好玩)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)

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

4

7 回答 7

7

在 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='')
于 2013-07-02T17:56:58.577 回答
5

你也可以简单地试试这个

from time import sleep
loading = 'LOADING...'
for i in range(10):
    print(loading[i], sep=' ', end=' ', flush=True); sleep(0.5)
于 2018-10-01T16:53:59.120 回答
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)
于 2019-09-23T19:23:58.747 回答
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')

ETC...

甚至:

from time import sleep
import sys
output = 'LOA...'
for char in output:
    sys.stdout.write ('%s' % char)
    sleep (0.1)

sys.stdout.write ('\n')
于 2013-07-02T17:57:33.113 回答
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() 

而不是打印类型代码

于 2020-12-10T17:23:02.867 回答
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)
于 2018-01-20T20:33:33.083 回答
-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)
于 2021-03-31T10:46:49.967 回答