基于多变量

时间:2017-10-01 23:02:48

标签: python

这是我的任务:

  

Clunker Motors Inc.正在召回1995-1998和2004-2006车型年代的所有车辆。如果modelYear的值落在两个召回范围内,则指定True将召回一个声明,否则指定False。

     

请勿在本练习中使用if语句!

所以,如果我正确读到这个:

我需要根据变量modelYear在1995年到1998年之间或在2004年到2006年之间的条件,将变量“recalled”赋予真或假。

在进行一些搜索时,我发现了其他人用于此挑战的代码段:

recalled = ((modelYear >= 1995) And ((modelYear <= 1998)) Or (modelYear >=2004) And (modelYear <=2006))

现在MyProgrammingLab不接受这个作为有效的答案。它说SyntaxError第1行。我只是忽略一个开括号或错过大写或什么?或者我使用这种方法完全错了吗?

3 个答案:

答案 0 :(得分:2)

你很接近,但你使用的是错误的工具。我使用PyCharm,并在本地运行代码。还有其他优秀的IDE,但这是我使用的。当我输入:

modelYear = 1997
recalled = ((modelYear >= 1995) And ((modelYear <= 1998)) Or (modelYear >=2004) And (modelYear <=2006))

PyCharm告诉我:

enter image description here

请注意语法错误的红色下划线,当光标悬停时,它会显示“未解析的引用”,因为它不知道And是什么。它应该是and

  

更好的工具==更好的代码。

干杯,祝你好运。

答案 1 :(得分:0)

请记住PEP8规则,即特殊保留关键字为小写,因此不是和,或,而是

点击pythonrules

Pep8 Rules

答案 2 :(得分:-1)

在本地运行代码 - 找出你的SyntaxError。请仔细阅读示例。和/或没有资本化。

此外,Python还具有范围功能。你可以改用

recalled = modelYear in range(1995, 1999) or modelYear in range(2004, 2007) 

您使用结束年+1,因为范围是非包容性的