python的提示错误消息

时间:2015-03-24 14:42:35

标签: python

def choosing_room():
    print "Welcome! You now must choose!"
    answer = raw_input("Type a or b and hit Enter")
    if answer == 'a' or 'A':
        print "You chose 'a'!"
    elif answer == 'b' or 'B':
        print "You chose 'b'!"
    else:
        print "That is incorrect, please try again"
        choosing_room()

choosing_room()

这是我的代码。这很简单,但由于某种原因,它会继续返回reference error: 'prompt' is undefined

的错误消息

2 个答案:

答案 0 :(得分:0)

正如@Bhargav Rao评论的那样,您的代码 与您的错误不匹配,当您运行它时,无论您输入什么,您都会获得a的输出。

这是因为if answer == 'a' or 'A':与说:

相同

if answer == 'a':if 'A':< - 这始终是真的

要解决此问题,您可以使用条件in

def choosing_room():
    print "Welcome! You now must choose!"
    answer = raw_input("Type a or b and hit Enter: ")
    if answer in ['a','A']:
        print "You chose 'a'!"
    elif answer in ['b','B']:
        print "You chose 'b'!"
    else:
        print "That is incorrect, please try again"
        choosing_room()

choosing_room()

答案 1 :(得分:0)

这可能无法解决您遇到的问题(虽然代码在iPython shell中适用于我),但是if / else语句存在问题。以下声明:

    if answer == 'a' or 'A':
        print "You chose 'a'!"

将始终打印"您选择' a'!"不管您在提示时输入的字母。在python中,您使用的or表达式会询问以下问题:答案是否等于' a' OR是" A"的布尔值。 True?你的意思是:答案是否等于' a' OR的答案等于" A"?这通过以下方式最简洁地表示:

if answer.lower() == 'a':
    print "You chose 'a'!"

这至少应解决此代码所遇到的一个问题。