Python中return与逻辑表达式and/or的执行机制详解
本文深入解析Python中return语句结合逻辑运算符and和or的执行逻辑。详细阐述and的“遇假则假”与or的“遇真则真”短路特性,并通过具体代码示例展示两者混合使用时的从左至右依次执行规则。理解这些机制有助于编写更简洁高效的Python代码,提升编程水平。
本文详细解析Python中利用return语句配合逻辑判断表达式的实现方式。文中通过具体的示例代码进行了详尽说明,旨在为读者的学习或工作提供具有实际价值的参考,建议相关读者仔细阅读并参考。
return与逻辑表达式and的执行机制
一、return与逻辑判断表达式and的结合使用
在and运算中,遵循“遇假则假”的原则。如果前面的表达式结果为假,则不再执行或判断后续表达式,直接返回假值;若前面的表达式为真,则继续判断并执行后续表达式,直到表达式结束或遇到假值为止。
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): shuopython.com
@WeChat Official Account(微信公众号):猿说python
@Github:www.github.com
@File:python_return.py
@Time:2019/10/6 19:48
@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
"""
def fun1():
# 所有条件都为真,返回最后一个值
return "21" and True
def fun2():
# 检测所有表达式,直到遇到假为止,并返回假
return 54 and 1 and True and 0
def fun3():
# 遇到真,继续后面的判断,直到遇到假为止,如果遇见假直接返回,不再继续判断
return 1 and True and False and 54 and 0
print(fun1())
print(fun2())
print(fun3())
输出结果如下:
True
0
False
关键要点提示:
1. 当表达式中存在假值时,返回值是第一个出现的假表达式的结果;
2. 当表达式中全为真值时,返回值是最后一个真表达式的结果;
return与逻辑表达式or的执行机制
二、return与逻辑判断表达式or的结合使用
在or运算中,遵循“遇真则真”的原则。如果前面的表达式结果为真,则不再执行或判断后续表达式,直接返回真值;若前面的表达式为假,则继续判断并执行后续表达式,直到表达式结束或遇到真值为止。
def fun1():
# 所有条件都为真,返回第一个真的表达式
return "21" or True
def fun2():
# 所有条件都为假,直到遇到真为止,并返回真,没有真则返回最后一个假
return "" or False or 0
def fun3():
# 直到遇到真为止,并返回真,不在继续后面的判断
return 0 or True or False or 54 or 0
print(fun1())
print(fun2())
print(fun3())
输出结果如下:
21
0
True
关键要点提示:
1. 当表达式中存在真值时,返回值是第一个出现的真表达式的结果;
2. 当表达式中全为假值时,返回值是最后一个假表达式的结果;
and与or混合使用的运算规则
三、return中and与or逻辑表达式的混合使用
当and和or混合使用时,并不存在绝对的优先级先后顺序,而是表达式从左往右依次执行。前一个表达式的计算结果将作为下一个表达式的起始输入值继续参与运算。
def fun1():
'''
动作分解:
第一步:"21" and True 返回结果 True
第二步:True or 1 返回结果 True
注意第二步 True or 1 中的 True 是第一步返回的结果并不是表达式中的True
'''
return "21" and True or 1 #等价:return (("21" and True) or 1)
def fun2():
'''
动作分解:
第一步:"" or False 返回结果 False
第二步:False and 0 返回结果 False
注意第二步 False and 0 中的 False 是第一步返回的结果并不是表达式中的 False
'''
return "" or False and 0 #等价:return (("" or False) and 0)
def fun3():
'''
动作分解:
第一步:0 or True 返回结果 True
第二步:True and False 返回结果 False
第三步:False or 54 返回结果 54
第四步:54 and 0 返回结果 0
注意:上一步的结果作为下一步的开始
'''
return 0 or True and False or 54 and 0 #等价:return ((((0 or True) and False) or 54) and 0)
def fun4():
'''
动作分解:
第一步:0 and True and False 返回结果 0
第二步:0 or 54 返回结果 54
第三步:54 and 0 返回结果 0
注意:上一步的结果作为下一步的开始
'''
return 0 and True and False or 54 and 0 #等价:return (((0 and True and False) or 54) and 0)
print(fun1())
print(fun2())
print(fun3())
print(fun4())
输出结果如下:
True
False
0
0
编程实践与核心总结
四、核心总结
对于普通函数而言,直接返回字符串或其他数据类型即可满足需求,为何要采用这种看似费力不讨好的方式?学习的本质是一个过程,我们应当在这个过程中不断成长,否则即使重复编写一万次“hello world”也毫无意义。return逻辑判断表达式、字典推导式以及列表推导式等写法在各类开源项目中被频繁使用,这往往也是衡量编程水平高低的一个重要体现。
以上就是本文的全部内容,希望能为各位的学习带来帮助,也欢迎大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













