布尔变量和 If 语句对于 true 语句失败
Boolean Variables and If statement fails for true statements
提示如下:
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
当你这样做时 -
modelYear >= 1999 and modelYear <= 2002
modelName == "Extravagant"
您只是丢弃了那些布尔表达式的结果,这并不会神奇地生成 modelYear
或 modelName
布尔值。
您可以简单地使用 if
块本身中的表达式,而不是尝试创建布尔值。示例 -
if 1999 <= modelYear <= 2002 and modelName == "Extravagant":
recalled = True
else:
recalled = False
并且如果在您的真实代码中的 if
块内,您所做的只是分配布尔值,那么您可以执行 -
recalled = 1999 <= modelYear <= 2002 and modelName == "Extravagant"
当你有:
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"
提示如下:
Clunker Motors Inc. is recalling all vehicles in its Extravagant line from model years 1999 – 2002. Given variables
modelYear
andmodelName
write a statement that assignsTrue
torecalled
if the values ofmodelYear
andmodelName
match the recall details and assignsFalse
otherwise.
我写了这段代码,但对正确的陈述总是得到错误的答案。虚假陈述通过得很好。
modelYear >= 1999 and modelYear <= 2002
modelName == "Extravagant"
if modelYear == True and modelName == True:
recalled = True
else:
recalled = False
当你这样做时 -
modelYear >= 1999 and modelYear <= 2002
modelName == "Extravagant"
您只是丢弃了那些布尔表达式的结果,这并不会神奇地生成 modelYear
或 modelName
布尔值。
您可以简单地使用 if
块本身中的表达式,而不是尝试创建布尔值。示例 -
if 1999 <= modelYear <= 2002 and modelName == "Extravagant":
recalled = True
else:
recalled = False
并且如果在您的真实代码中的 if
块内,您所做的只是分配布尔值,那么您可以执行 -
recalled = 1999 <= modelYear <= 2002 and modelName == "Extravagant"
当你有:
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"