2017-07-22 16 views
0

Macの端末で問題があります。 オンラインのコンパイラでテストしたときに、遅延テキスト(タイプライターに表示されるようなもの)とコード(以下)が正しく表示されていました。Mac端末(Python)で時間遅延テキストを実行できません

import sys 
import time 


intro1= "Welcome player. What's your name?" 

for x in intro1: 
    sys.stdout.write(x) 
    time.sleep(0.2) 

しかし私のMac端末はちょっと凍りついて、1度にすべてのステートメントを印刷します。私はMac上でPython 2.7.10を手に入れました。私はオンラインを見て、私は私のターミナルが便宜のためにバッファを切断していると思うが、今は実際にはが必要である。バッファ(私は遅れたテキストをたくさん印刷するつもりだ。)。ターミナルでバッファを有効にする(またはデフォルトで設定する必要があるので修正する)声明はありますか?おかげでたくさんの

答えて

1
あなたは文字を強制的に各 sys.stdout.write()sys.stdout.flush()を追加する必要はなく、それがバッファを取得させる

import sys 
import time 

introduction = "Welcome player. What's your name? " 

for character in introduction: 
    sys.stdout.write(character) 
    sys.stdout.flush() 
    time.sleep(0.2) 

name = raw_input() 
+0

は、私は*私が何かを印刷する*たびにこれを実行する必要がありますか?ターミナルにバッファリングしてはならないことを思い出させるプログラムの前に置くべき文が1つありますか?助けてくれてありがとう –

+0

私はあなたがバッファリングを止めることはできないと思うので、あなたの質問に対する答えは_yes_です:毎回それをしなければなりません。しかし、 'write_typewriter(text、delay)'関数を定義すれば、コードを省略することができます。 –

関連する問題