1

入力をchar - y、b、sとして要求し、それを比較して入力が何であったかをチェックする小さなプログラムがあります。
プログラムを実行したときに得られる問題は-

NameError: 名前 'b' が定義されていません

入力が次の場合、たとえば b.
これは私のコードです:

print("Please think of a number between 1 and 7")
print("Is it 4? (y,s,b)")
answer=char(input())

if (answer=='y'):
    print("It is Four!")

elif (answer=='s'):
    print("Is it 2? (y,s,b)")
    answer=input()
    if (answer=='y'):
        print("It is two!")
    elif (answer=='s'):
        print("It is one!")
    elif (answer=='b'):
        print("It is Three!")
elif (answer=='b'):
    print("Is it 6? (y,s,b)")
    answer=input()
    if (answer=='y'):
        print("It is Six!")
    elif (answer=='s'):
        print("It is Five!")
    elif (answer=='b'):
        print("It is Seven!")
4

1 に答える 1

3

raw_input()Python 2 を使用しているように見えるため、ではなくを使用する必要がありますinput()。違いは、後者は入力した式を評価しようとすることです。たとえば、 と入力するbと、 という名前の変数が検索されbます。

Python 3 には がなくraw_input()input()式を評価しなくなりました。つまり、Python3は Python2 とinput()同じように動作しraw_input()ます。

于 2013-03-12T09:12:11.513 に答える