布尔变量和If语句对于真实语句失败

时间:2015-09-18 03:59:43

标签: python if-statement boolean-logic

这是提示:

  

Clunker Motors Inc.正在召回1999 - 2002年型号 Extravagant 系列中的所有车辆。给定变量modelYearmodelName写一份声明,指定{{1}如果Truerecalled的值与召回详细信息匹配,则{}为modelYear,否则为modelName

我编写了这段代码,却一直得到错误的答案。这些虚假陈述很好。

False

2 个答案:

答案 0 :(得分:1)

当你这样做时 -

modelYear >= 1999 and modelYear <= 2002
modelName == "Extravagant"

你只是抛弃那些布尔表达式的结果,这不会神奇地使modelYearmodelName布尔值。

您可以简单地使用if块本身中的表达式,而不是尝试创建布尔值。示例 -

if 1999 <= modelYear <= 2002 and modelName == "Extravagant":
    recalled = True
else:
    recalled = False

如果在真实代码中的if块内,你所做的只是分配布尔值,那么你可以做 -

recalled = 1999 <= modelYear <= 2002 and modelName == "Extravagant"

答案 1 :(得分:1)

当你有:

modelYear >= 1999 and modelYear <= 2002
modelName == "Extravagant"

您不存储语句的结果。为了使它工作,你可以这样:

year = modelYear >= 1999 and modelYear <= 2002
name = modelName == "Extravagant"
if year and name:
    recalled = True
else:
    recalled = False

但更简单的解决方案是直接在if语句中执行此操作,如:

if modelYear >= 1999 and modelYear <= 2002 and modelName == "Extravagant":
    recalled = True
else:
    recalled = False

最简单的方法是:

recalled = modelYear >= 1999 and modelYear <= 2002 and modelName == "Extravagant"