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

由于您似乎使用的是 Python 2,因此您需要使用raw_input()而不是input(). 不同之处在于后者尝试评估您输入的表达式。例如,如果您输入b,它会查找名为 的变量b

在 Python 3 中,没有raw_input()input()也不再计算表达式。换句话说,Python3 的input()行为类似于 Python2 的raw_input().

于 2013-03-12T09:12:11.513 回答