2016-03-27 3 views
0

私はPythonには新しく、Pycharmを使ってコードを扱うことができます。Pycharmで入力フローを操作するにはどうすればよいですか?

私は簡単なプログラムを書いています。それは文字列を読み込んでintに変換します。

import sys 

    print ("Hello word") 
    data = sys.stdin.read() 
    tokens = data.split() 

    for i in range(len(tokens)): 
     tokens[i] = int(tokens[i]) 

    print (tokens[1]) 

enter image description here

私はプログラムを実行した私は、印刷の結果を見ることができないプログラムを実行している間、3つの数字を入力し、それはすべての なぜですか?

答えて

2

プログラムがまだstdinから読み取っているためです。 stdinから1行だけを読むには、stdin.readline()を使用する必要があります。行sys.stdin.read()の後にブレークポイントを持つデバッグプロセスを実行すると、プログラムがそれに到達しないことがわかります。 Ideoneでプログラムを実行すると、たとえば、アプリケーションを実行する前にstdinを指定できる場所であれば、stdin.read()は正常に動作します。通常、EOF(ファイルの終わり)まで読み込みます。したがって、sys.stdin.readline()(組み込みのinput()のみ)を使用するか、複数の行を読みたい場合はファイル入力を使用してください。実際にsys.stdin.read()を使用する場合は、this投稿を参照して詳細情報を参照することもできます。

1

.read()で効果的にプログラムをブロックしました。

print('Hello World') 
data = input() 
tokens = map(int, data.split()) # this converts to int 
print(tokens[1]) 
のように、 input()を使用する方がずっと簡単です。
関連する問題