1

私はPythonに非常に慣れていないので、これに対する解決策を無限に探しましたが、それを得ることができません。

監視プロットのリストを含む csv があります。以下のコードで、2dlist を表示し、リスト インデックスに基づいて特定のプロット (11 個あります) を選択するための番号をユーザーに入力させることができました。

しかし、ユーザーに選択を促すときは、「....または「q」を押して終了する」というオプションを含めたいと思います。明らかに raw_input は整数のみを受け取るように設定されていますが、リストまたは「q」から数値を受け取るにはどうすればよいですか?

raw_input から 'int' を削除すると、再度入力するよう求められ続け、例外行が出力されます。インデックス番号 (0-9) または 'q' を受け入れるようにできますか?

for item in enumerate(dataList[1:]):            
    print "[%d] %s" % item

while True:
    try:
        plotSelect = int(raw_input("Select a monitoring plot from the list: "))
        selected = dataList[plotSelect+1]

        print 'You selected : ', selected[1]
        break
    except Exception:
        print "Error: Please enter a number between 0 and 9"
4

2 に答える 2

1
choice = raw_input("Select a monitoring plot from the list: ")

if choice == 'q':
    break

plotSelect = int(choice)
selected = dataList[plotSelect+1]

ユーザーがループに入ったかどうかを確認し、入ったq場合は (スローされる例外に依存するのではなく) 明示的にループから抜け出します。このチェックの後、入力を int に変換するだけです。

于 2013-04-21T00:40:30.053 に答える
1

でないことを確認した後、整数に変換します'q'

try:
    response = raw_input("Select a monitoring plot from the list: ")

    if response == 'q':
        break

    selected = dataList[int(plotSelect) + 1]

    print 'You selected : ', selected[1]
    break
except ValueError:
    print "Error: Please enter a number between 0 and 9"
于 2013-04-21T00:41:19.837 に答える