2

ユーザーが入力用に数字以外を入力した場合にコードがクラッシュしないようにする方法を知りたいです。私のelseステートメントでカバーできると思っていましたが、エラーが発生しました。

トレースバック (最新の最後の呼び出し): ファイル "C:/Python33/Skechers.py"、22 行目、run_prog = input() ファイル ""、1 行目、NameError: 名前 's' が定義されていません

この例では、文字「s」を入力しました。

以下は、問題を引き起こすコードの一部です。文字や記号を指定しない限り、プログラムは問題なく動作します。

可能であれば、クラッシュする代わりに「無効な入力」を出力したい。

別の elif ステートメントと isalpha 関数に関係するトリックはありますか?

while times_run == 0:
    print("Would you like to run the calculation?")
    print("Press 1 for YES.")
    print("Press 2 for NO.")
    run_prog = input()

    if run_prog == 1:
        total()
        times_run = 1

    elif run_prog == 2:
            exit()

    else:
        print ("Invalid input")
        print(" ")

これのいくつかのバリエーションを試しましたが、成功しませんでした。

elif str(run_prog):
    print ("Invalid: input")
    print(" ")

Python マニュアルの特定の部分を参照することが私にとってであっても、フィードバックをいただければ幸いです。

ありがとう!

4

3 に答える 3

3

あなたの考えに反して、あなたのスクリプトはPython 3.x で実行されていません。システムのどこかに Python 2.x がインストールされていて、その中でスクリプトが実行されているため、代わりに 2.x の安全でない/不適切なものが使用されますinput()

于 2013-07-04T00:46:01.373 に答える