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

2024-05-15 11:19:33 发布

您现在位置:Python中文网/ 问答频道 /正文

提示如下:

Clunker Motors Inc. is recalling all vehicles in its Extravagant line from model years 1999 – 2002. Given variables modelYear and modelName write a statement that assigns True to recalled if the values of modelYear and modelName match the recall details and assigns False otherwise.

我写了这段代码,但总是得到错误的答案。虚假的陈述说得很好。在

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

Tags: andthefalsetrueifisincassigns
2条回答

当你这样做的时候-

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

您只是丢弃了这些布尔表达式的结果,这不会神奇地生成modelYear或{}布尔值。在

您不必尝试创建布尔值,只需使用if块中的表达式。示例-

^{pr2}$

如果在实际代码中的if块内,您所要做的就是分配布尔值,那么您可以-

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

当您有:

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

不存储语句的结果。为了让它发挥作用,你可以这样做:

^{pr2}$

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

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

最短的方法是:

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

相关问题 更多 >