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)

この例は些細なことですが、より一般的な質問が生じます: 複数の文字列を 1 行に出力し、文字列の出力の間に他の関数を実行することは可能ですか?

4

7 に答える 7

7

Python2 では、文字列の後にコンマを置くと、print は改行を追加しません。ただし、出力はバッファリングされる可能性があるため、文字がゆっくりと出力されるのを確認するには、stdout もフラッシュする必要がある場合があります。

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 に答える
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

すべての文字を 1 行に印刷するように更新されました。

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')
于 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 に答える