python-3.x - 我的代码的哪一部分打印了这个特定的行?
问题描述
我开始学习 python,这是我关于 stackoverflow 的第一个问题。问题是:为什么在运行代码时会打印Function return false ?我的代码的哪一部分打印出来了?
def return_false():
print("Function return false")
return False
def return_true():
print("Function return true")
return True
print("test 2")
if return_false() and return_true():
print("True")
else:
print("False")
test 2
Function return false # I don't understand what makes this popped up.
False
解决方案
首先,这个问题需要一些编辑,但由于编辑队列已满,我不能这样做,所以我会回答你的问题。
您的代码如下:
def return_false():
print('Function return false')
return False
def return_true():
print('true')
return True
print('test 2')
if return_false() and return_true(): # the problem is here
print('True')
else:
print('False')
并且您期望的输出必须是:
test 2
False
而实际输出是:
test 2
Function return false
False
问题在于 if 语句(主要是函数)。因此,您print('test 2')
负责输出test 2
,但是当您编写if return_false() and return_true():
python 调用函数以获取返回值时。它首先调用return_false()
它不仅返回False
,而且还包含一个print('Function return false')
语句,因此它也被执行,它负责Function return false
代码中的额外输出。
最后,接下来的 if 语句获取and
运算符,但由于逻辑比较的值是False
它不必检查第二个值,因为无论第二个值是什么,表达式总是会计算为False
(因为True and False
或False and False
两者都会导致in False
)。因此,该if
块下的代码没有被执行,程序到达else
语句并执行该print('False')
语句,该语句负责False
作为最后的输出。
要解决此问题,您将代码修改为:
def return_false():
# print('Function return false') # remove this line and use print(return_false()) instead to learn that the function returns a False value
return False
def return_true():
# print('true') # remove this too and use print(return_true()) instead
return True
print('test 2')
if return_false() and return_true():
print('True')
else:
print('False')
此代码将输出:
test 2
False
我希望答案是有帮助的......快乐的编码...... :)
推荐阅读
- python - Selenium 只能在检查元素后找到元素
- python-3.x - 使用 Python 将 Azure Blob 存储数据直接推送到 POST 请求中
- php - 插入一个额外的包裹在 navwalker 上之后
- react-native - 如何对 apollo 缓存进行复杂查询
- javascript - 如何在 jquery 中将对象值传递给 .on
- r - 当您已经有了倾向得分时,如何在 R 中使用 MatchIt?
- java - Arrays.sort(stringArray, String::compareToIgnoreCase) 如何使用 compareToIgnoreCase() 而不是 Comparator
- ios - DJI SDK SWIFT - 实现 FollowMeMission 示例代码
- ios - 在视图中注入实体时,SwiftUI 预览不适用于核心数据
- visual-studio - 在 python 和 microsoft visual studio 中清除命令行