0

このエラーを検索しようとしましたが、見つからなかったので、ここにあります:

Linuxで実行されているpython 3スクリプトに入力しようとしましたが、0〜5しか入力できません。次のコードを使用してこれを行います。

    while True:
        type = input("Please choose a type:\n1) a\n2) b\n3) c\n4) d\n0) EXIT\n"))

        if type == "0":
            sys.exit()

        elif type == "1" or type == "2" or type == "3" or type == "4":
            print("You entered: %s" %type )
            break

        else:
            os.system("clear")
            print("Input entered is invalid, please try again.\n")

数字を入力するとプログラムは正常に動作しますが、文字を入力するとクラッシュします。助けてください :(

Traceback (most recent call last):
  File "test.py", line 21, in <module>
    type = input("Please choose a type:\n1) a\n2) b\n3) c\n4) d\n0) EXIT\n"))   
  File "<string>", line 1, in <module>
NameError: name 'h' is not defined
4

1 に答える 1

1

inputと同等ですeval(raw_input(prompt))

入力が解釈されることを意味します。つまり、数値、関数、変数は機能しますが、テキストは機能しません。

raw_input代わりに使用してください。( http://docs.python.org/2/library/functions.html#raw_inputを参照)

注:これは有効なpython 2であり、python 3について言及しています。ただし、プロンプトはpython 3に含まれている\nで終了し、スクリプトはpython 3で動作するため、実際にはpython 2を使用していると思います

于 2012-10-31T13:56:15.423 に答える