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
答案 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'!"
这至少应解决此代码所遇到的一个问题。