Python:使用具有If语句和raw_input的布尔值

时间:2015-09-01 04:09:24

标签: python terminal boolean

绑定以考虑用户输入大写或小写的答案。它不起作用,因为无论我输入什么,第一个语句都被接受为真。也许我对布尔语的理解不够,但对于第一个陈述,如果我不输入“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)

1 个答案:

答案 0 :(得分:1)

您缺乏布尔逻辑如何工作的基础知识。我推荐一本书或在线阅读。

if next == "B" or "b":

应该是

if (next == "B") or (next == "b"):

如果你在代码中为每个变量替换字母变量,你得到的是:A == B or C,并且评估为True总是因为在你的情况下C只是一个大于0的数字,Python认为是&# 34; truthy&#34 ;.