6

入力:

359716482
867345912
413928675
398574126
546281739
172639548
984163257
621857394
735492861

私のコード:

print("Enter the array:\n")   
userInput = input().splitlines()
print(userInput)

ここでの私の問題はuserInput、最初の行の値のみを取り込んでいますが、最初の行の後の値を取り込んでいないようです?

4

6 に答える 6

18

readlines()ファイルオブジェクトのメソッドを使用できます:

import sys
userInput = sys.stdin.readlines()
于 2012-05-03T07:13:09.327 に答える
9

ジェネレーターを使用して簡単に作成できます。これがそのような実装の 1 つです。入力ループから抜け出すには、空白のリターンまたは任意のキーボード割り込みを押すことができます。

>>> def multi_input():
    try:
        while True:
            data=raw_input()
            if not data: break
            yield data
    except KeyboardInterrupt:
        return


>>> userInput = list(multi_input())
359716482
867345912
413928675
398574126

>>> userInput
['359716482', '867345912', '413928675', '398574126']
>>> 
于 2012-05-03T07:19:36.003 に答える
2

それぞれinput()が 1 行のみを受け入れます。これに関する戦略:

  • input()空白行を受け取るまで、ループで繰り返し呼び出すことができます
  • ユーザーが UNIX ライクな OS で ctrl-D を実行するまでループ内で繰り返し呼び出すことができますinput()。その時点で EOFError が発生し、これをキャッチできます。
  • テキスト ファイルまたは stdin よりも適切なソースからデータを読み取る
于 2012-05-03T07:10:55.540 に答える