Python逻辑运算符详解

Python 中的逻辑运算符用于对布尔值(True/False)进行逻辑运算,也可用于表达式的组合。主要有三个:and、or 和 not。

1. 基本用法

运算符 描述 示例
and 逻辑与:两边都为 True 时结果为 True True and False → False
or 逻辑或:至少一边为 True 时结果为 True True or False → True
not 逻辑非:取反 not True → False

2. 短路求值

  • and:如果左边表达式为 False,右边将不会执行,直接返回 False。
  • or:如果左边表达式为 True,右边将不会执行,直接返回 True。

这可以用于避免无效操作,例如:

python

复制代码
x = 10
复制代码
if x > 0 and 100 / x > 5:
复制代码
    print("ok")   #安全,因为x\>0为True时才计算除法

3. 返回值

逻辑运算符不一定返回 True/False,而是返回决定最终结果的那个操作数的值。

  • and:如果左边为假,返回左边;否则返回右边。
  • or:如果左边为真,返回左边;否则返回右边。
  • not:总是返回 True 或 False。

python

复制代码
print(3 and 5)      # 5 (3为真,返回5)
复制代码
print(0 and 5)      # 0 (0为假,返回0)
复制代码
print(3 or 5)       # 3 (3为真,返回3)
复制代码
print(0 or 5)       # 5 (0为假,返回5)
复制代码
print(not 3)        # False
复制代码
print(not 0)        # True

利用此特性可以简化代码:

python

复制代码
name = input("输入姓名: ") or "匿名"
复制代码
print(name)   #如果用户直接回车(空字符串),name变为"匿名"

4. 优先级

优先级从高到低:not > and > or。可以使用括号改变优先级。

相关推荐
qianbo_insist25 分钟前
# 在 Qwen3.5-2B 上把 GDN-1 无损换成 GDN-2:一次完整的架构手术实验(负结果)
人工智能·pytorch·python·架构
多弗朗皮卡丘30 分钟前
C++的IO流
开发语言·c++·io流·文件io流
骑着蜗牛撵大象32742 分钟前
AI Agent 工程化开发实战(三):用 StateGraph 给智能体搭一条可回放的状态流水线
java·开发语言·jvm·ai·状态管理·langgraph·stategraph
itmigrate1 小时前
Rust 里的所有权误区:不是不写 clone 就叫高性能
开发语言·后端·rust
Brilliantwxx1 小时前
【Linux】 文件访问与路径解析:目录、文件名、dentry、路径缓冲与 dcache 全解析
linux·运维·服务器·开发语言·spring
摇滚侠1 小时前
《On Java 中文版 基础卷》阅读笔记 初始化和清理 08
java·开发语言·笔记
xiangyun612 小时前
C++ 手撕 shared_ptr:引用计数与控制块到底长什么样?
开发语言·c++·算法·面试·stl
专注仿真2 小时前
Agentic RAG算法详解
人工智能·python·大模型训练·控制算法
XiYang-DING2 小时前
P4009.和为K的子数组个数 & P5522.异或和为 k 的子数组个数
java·开发语言
学习论之费曼学习法2 小时前
无人值守AI内容矩阵实战(8):标题 A/B 实验的 6 个工程实现细节,隔日对比与自动判胜
人工智能·python·算法·矩阵·自动化·a/b测试·内容矩阵