Python中return与逻辑表达式and/or的执行机制详解

Theo
Theo
发布时间:2026-10-13| 3人浏览过
原创

本文深入解析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逻辑判断表达式、字典推导式以及列表推导式等写法在各类开源项目中被频繁使用,这往往也是衡量编程水平高低的一个重要体现。

以上就是本文的全部内容,希望能为各位的学习带来帮助,也欢迎大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。