Python 中,if 和 if not 都是条件判断语句,用于根据表达式的布尔值(True 或 False)决定是否执行特定代码块
在 Python 中,if 和 if not 都是条件判断语句,用于根据表达式的布尔值(True 或 False)决定是否执行特定代码块。
两者的核心区别在于:
if 用于判断表达式的布尔值为 True 时执行代码;
if not 用于判断表达式的布尔值为 False 时执行代码(not 是逻辑 “非” 运算符,会反转布尔值)。
一、if 的作用及示例
if 后面跟一个表达式,当表达式的布尔值为 True 时,执行 if 缩进块内的代码。
常见场景:
判断数值是否满足条件
age = 18
if age >= 18: # 表达式 "age >= 18" 的布尔值为 True
print("已成年") # 输出:已成年
判断变量是否为 “有意义” 的值
(非空字符串、非空列表、非零数值等的布尔值为 True)
name = "Alice"
if name: # 非空字符串的布尔值为 True
print(f"姓名:{name}") # 输出:姓名:Alice
判断条件是否成立
is_student = True
if is_student: # 变量本身是 True
print("是学生") # 输出:是学生
二、if not 的作用及示例
if not 即当表达式的布尔值为 False 时,执行缩进块内的代码。if not x 等价于 if bool(x) is False,即当 x 表达式的布尔值为 False 时,条件成立。
if not x 的核心作用是判断 x 是否为 “空 / 零 / 无意义” 的值,常用于:
- 检查变量是否初始化(是否为 None)
- 验证容器是否为空(如列表、字符串是否有内容)
- 过滤无效数值(如排除零值)
通过 if not 可以简洁地处理 “空值判断” 场景,让代码更简洁易懂。
常见场景:
判断变量是否为 None
data = None
if not data: # data 的布尔值为 False
print("data数据为空") # 输出:data数据为空
判断容器是否为空
(空字符串、空列表、空字典等的布尔值为 False)
scores = [] # 空列表的布尔值为 False
if not scores:
print("没有成绩记录") # 输出:没有成绩记录
判断数值是否为零
count = 0 # 0 的布尔值为 False
if not count:
print("数量为零") # 输出:数量为零
判断条件是否不成立
has_error = False
if not has_error: # not False 等价于 True
print("程序执行正常") # 输出:程序执行正常
通过 if 和 if not 的配合,可以覆盖各种条件判断场景,让代码逻辑更清晰。
if not False 与 if True 在 Python 中是等价的。
解析:
False 是一个布尔值,它代表 假。
not False 将 假 转换为 真,即 not False 的结果是 True。
if not False 实际上等同于 if True,即判断条件是 真,因此会执行 if 块中的代码。
所以,if not False 和 if True 具有相同的效果,都会让条件为 True,因此代码块会被执行。


浙公网安备 33010602011771号