2017-07-17 18 views
0

このコードは、私が取り組んでいる非常に基本的なものです。私はこの「低速タイプ」のものを見つけましたが、私が好きですが、すべての印刷機能の代わりに使用すると、ほとんどの出力が1行に書き込まれます。sys.stdout.writeは次の行にもう印刷されません

import sys, time 


def print_slow(str): 
    for letter in str: 
     sys.stdout.write(letter) 
     sys.stdout.flush() 
     time.sleep(0.02) 

print_slow('What\'s your name?') 

name = raw_input() 

print_slow('My name is ' + name) 

if name == 'alex' or name == 'Alex': 
    print_slow('That\'s a good name') 
if name == 'Alexandru' or name == 'alexandru': 
    print_slow('That\'s a very good name') 
+0

関数定義の終わり( 'for'ループの終わりの後)に' sys.stdout.write( '\ n') 'を追加します。 – khelwood

+0

これは、すべての文字を新しい行に書き込みます。 –

+0

これは機能しました。私は最初にループ内に追加しました。 –

答えて

1

あなたは各行あなたがそう望むの最後に改行文字(\n)を印刷、またはprint_slow機能に追加することができます。

+0

私はそれをprint_slow関数にどのように追加するのか分かりません。すべての単一の行の後にそれを追加するのはあまりにも多くなるからです。 –

+0

あなたは関数定義の最後にforループの外に新しい行を追加します: 'sys.stdout.write( '\ n')' –

関連する問題