首页 > 解决方案 > 我们可以在 return 语句中使用逻辑运算符吗

问题描述

在这种情况下我可以使用 not 运算符并使用 not 运算符将 else 输出为 false

 # NEW TO PYTHON
 def is_positive(number):
  if number > 0:
    return bool(number)
  else:
    return not bool(number)

标签: python

解决方案


是的你可以。

但是更好的代码应该是这样的:

def is_positive(number):
    return (number > 0)

您的代码返回Trueif number == 0,即使它进入该else部分,因为bool(number)始终返回Trueif number != 0。如果需要,请使用>=而不是>.

在您的代码中,您正在计算两个布尔值,而一个就足够了。您正在计算一个 boolean number > 0,如果它是True,则您正在计算一个新的 boolean ,如果第一个条件有效,则该值将始终为True,并且对于else语句也是如此,因此就像编写:

def is_positive(number):
    if number > 0:
        return True
    else:
        return False

现在您可以更清楚地看到,如果number > 0True,则返回True,如果number > 0False,则返回False。Butnumber > 0本身就是一个布尔语句,计算结果为Trueand False。例如,如果您知道number > 0,您的代码相当于:

def is_positive(number):
    if True:
        return True
    else:
        return False

如果不:

def is_positive(number):
    if False:
        return True
    else:
        return False

如您所见,您可以直接 return number > 0


推荐阅读