【问题标题】:Having trouble using <= with "elif" and "and"将 <= 与“elif”和“and”一起使用时遇到问题
【发布时间】:2019-01-15 17:35:16
【问题描述】:

使用教科书和 codecademy 学习 Python。

此代码返回一个 SyntaxError。我不能在同一个 elif 语句中使用两个大于/小于符号吗?还是我的“

def movie_rating(rating):
    if rating <= 5:
        return "Avoid"
    elif rating > 5 and <= 9:
        return "I recommend!"
    else:
        return "Amazing"

【问题讨论】:

  • elif rating &gt; 5 and rating &lt;= 9: 问题是&lt;= 需要在左侧进行比较。我们需要明确表示我们希望 rating 小于等于 9。
  • 第一个问题是缩进。修复它。
  • elif 5 &lt; rating &lt;= 9:
  • @spencer7593 - 非常感谢!这么简单的错误我完全忽略了。
  • 在这种情况下,我们已经完成了rating &lt;= 5的检查,所以如果我们落入elif,我们不需要确认评分大于5。即,我们将只使用 elif rating &lt;= 9: 得到相同的结果(这是进行范围检查的更好方法,以防我们决定将避免评级更改为小于或等于 4,我们只需在一个地方将 5 更改为 4。(如果我们不希望 5 的评级下降到“令人惊叹”。)

标签: python python-3.x


【解决方案1】:

问题是因为您在第 4 行中的and,发生此错误是因为当您使用并且需要定义新条件时,您应该将代码更改为以下代码之一:

def movie_rating(rating):
    if rating <= 5:
        return "Avoid"
    elif rating > 5 and rating <= 9:
        return "I recommend!"
    else:
        return "Amazing"

或将您的代码更改为:

def movie_rating(rating):
    if rating <= 5:
        return "Avoid"
    elif 5> rating <= 9:
        return "I recommend!"
    else:
        return "Amazing"

如果您想知道如何在 python 中使用and,请点击以下链接:

How to use boolean 'and' in Pythonhow use if and else elif or

【讨论】:

  • 哦,是的,您的权利,对不起,这是不受欢迎的。现在我改变了我的答案,很明显,评分总是大于 5 而小于 9,但我的观点是语法错误,我不考虑这段代码的逻辑。
  • 这里甚至不需要5 &lt;,因为所有它为假的情况都已经在if 中处理过了。你可以做if rating &lt;= 5: ... elif rating &lt;= 9: ...
猜你喜欢
  • 2020-08-07
  • 2015-12-06
  • 2013-03-20
  • 2021-07-15
  • 2013-06-19
  • 2014-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多