python - 我们可以在 return 语句中使用逻辑运算符吗
问题描述
在这种情况下我可以使用 not 运算符并使用 not 运算符将 else 输出为 false
# NEW TO PYTHON
def is_positive(number):
if number > 0:
return bool(number)
else:
return not bool(number)
解决方案
是的你可以。
但是更好的代码应该是这样的:
def is_positive(number):
return (number > 0)
您的代码返回True
if number == 0
,即使它进入该else
部分,因为bool(number)
始终返回True
if number != 0
。如果需要,请使用>=
而不是>
.
在您的代码中,您正在计算两个布尔值,而一个就足够了。您正在计算一个 boolean number > 0
,如果它是True
,则您正在计算一个新的 boolean ,如果第一个条件有效,则该值将始终为True
,并且对于else
语句也是如此,因此就像编写:
def is_positive(number):
if number > 0:
return True
else:
return False
现在您可以更清楚地看到,如果number > 0
是True
,则返回True
,如果number > 0
是False
,则返回False
。Butnumber > 0
本身就是一个布尔语句,计算结果为True
and 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
。
推荐阅读
- python - 最新 Python 版本 3.8.2 的导入错误没有名为 tkinter 的模块问题
- macos - 如何在 Mac/UNIX 的 osascript 对话框中添加密码输入表单
- android - RecyclerView 项目宽度在迁移到视图绑定后变为 wrap_content
- c++ - 通过匹配键的子元素来查找地图中的任何元素
- c++ - 类语法问题
- javascript - 为什么在 javascript 的 for-in 循环中执行 return 语句后的代码?
- google-apps-script - 从另一个帐户复制时需要打开电子表格
- .htaccess - 带/不带 HTTPS 的附加域
- oracle - oracle中权限查询
- java - 如何在java中翻译嵌套的弹性搜索查询?