绑定以考虑用户输入大写或小写的答案。它不起作用,因为无论我输入什么,第一个语句都被接受为真。也许我对布尔语的理解不够,但对于第一个陈述,如果我不输入“B”或“b”那么它将是错误的,导致下一个陈述被评估;或者我想。有人可以解释我的错误吗?
next = raw_input("Enter A, B, C or D: ")
if next == "B" or "b":
print "Correct!"
elif next == "D" or "d":
print "Fair enough, Ill give you this one."
elif next == "C" or "A":
print "Incorrect"
exit(0)
else:
print "WRONG. START AGAIN"
exit(0)
答案 0 :(得分:1)
您缺乏布尔逻辑如何工作的基础知识。我推荐一本书或在线阅读。
if next == "B" or "b":
应该是
if (next == "B") or (next == "b"):
如果你在代码中为每个变量替换字母变量,你得到的是:A == B or C
,并且评估为True总是因为在你的情况下C只是一个大于0的数字,Python认为是&# 34; truthy&#34 ;.