私はコンソールから改行で区切られた複数の名前を取得し、変数に入れようとしています。ターミナルからの入力を永久に取得したいとしましょう(後でループから抜け出すためのコードをいくつか追加します)。私はwhileループとrecursionでそれを行う方法を知っていますが、私はforループを使ってそれをやってみたいです。私は一度に行全体ではなく、各文字を取得し、端末からの入力として"peter"
を取得する以下の例でPythonは、input()を使って行ごとにstdinを繰り返し処理します。
:私が使用している場合、
for name in input():
print(name)
今sys.stdin
name
変数"peter\n"
なる:
for name in sys.stdin:
print(name)
"name"
行全体ではなく、個々の文字を与えることinput()
を取得する簡単な方法はありますか?または単に使用の性質によってfor in
私は入力の文字を反復処理するつもりですか?このような方法で入力を得ることに固有のリスク/問題はありますか?このような状況で入力を得るための「標準的な」方法はありますか?
私はUbuntu 15.10でPython 3.5.1を使用しています。
'input()'は反復可能な文字列を返します。そのため、繰り返し実行しようとすると各文字が1つずつ取得されます。 –
それは意味があります。 input()は文字列を返します。したがって、sys.stdinは1行ずつ反復されるバッファを返しますか? – PeterH
sys.stdinはオブジェクトのようなファイルを返します。これは、反復処理されると、入力の各行が含まれます。 –