Python3 条件控制详解

在 Python 3 中,条件控制语句是构建程序逻辑的基础,它允许程序根据不同条件执行特定代码块。本文将系统解析 Python 3 的条件控制机制,包括基本语法、高级特性及最佳实践。

一、基础条件语句:if-elif-else

1. 单条件判断

x = 10
if x > 5:
    print("x大于5")  # 输出:x大于5
 

2. 多分支判断

age = 25
if age < 18:
    print("未成年人")
elif age < 60:
    print("成年人")  # 输出:成年人
else:
    print("老年人")
 

3. 多条件组合

score = 85
if score >= 90:
    print("优秀")
elif 80 <= score < 90:  # 连续比较,等价于score >=80 and score <90
    print("良好")  # 输出:良好
elif 60 <= score < 80:
    print("中等")
else:
    print("不及格")
 

二、条件表达式(三元运算符)

Python 使用独特的语法实现三元运算符:
 
 
x = 5
result = "正数" if x > 0 else "非正数"  # 输出:正数
 

等价于:

if x > 0:
    result = "正数"
else:
    result = "非正数"
 

三、真值测试与布尔运算

1. 真值测试规则

  • 数字 0、空序列([]、""、())、空字典 / 集合({}、set ())、None 均为 False
  • 其他值均为 True
 
 
if []:  # 空列表为False
    print("不会执行")
else:
    print("空列表为False")  # 输出

if "0":  # 非空字符串为True
    print("非空字符串为True")  # 输出
 

2. 布尔运算的短路特性

  • and:左侧为 False 时直接返回 False,不执行右侧表达式
  • or:左侧为 True 时直接返回 True,不执行右侧表达式
 
def func():
    print("函数被调用")
    return True

False and func()  # 不会调用func()
True or func()    # 不会调用func()
 

四、嵌套条件语句

条件语句可以嵌套使用,处理复杂逻辑:
 
num = 15
if num >= 0:
    if num == 0:
        print("零")
    else:
        if num % 2 == 0:
            print("正偶数")
        else:
            print("正奇数")  # 输出:正奇数
else:
    print("负数")
 

五、match-case 语句(Python 3.10+)

Python 3.10 引入了结构化模式匹配:

def http_error(status):
    match status:
        case 200:
            return "OK"
        case 400:
            return "Bad Request"
        case 401 | 403:  # 多值匹配
            return "Unauthorized/Forbidden"
        case 404:
            return "Not Found"
        case _:  # 默认情况,类似else
            return "Unknown status"

print(http_error(403))  # 输出:Unauthorized/Forbidden
 

六、条件控制的高级应用

1. 结合序列解包

person = ("Alice", 25, "Engineer")
if len(person) == 3 and person[1] > 18:
    name, age, job = person
    print(f"{name}{age}岁的{job}")  # 输出:Alice是25岁的Engineer
 

2. 条件与循环结合

numbers = [1, 3, 5, 7, 10]
for num in numbers:
    if num % 2 == 0:
        print(f"找到偶数:{num}")  # 输出:找到偶数:10
        break
else:  # 循环未被break时执行
    print("未找到偶数")
 

3. 复杂条件表达式

x = 10
y = 5
if (x > 5 and y < 10) or (x == 10 and y == 5):
    print("条件满足")  # 输出:条件满足
 

七、最佳实践与常见陷阱

1. 避免冗余条件

# 不推荐
if x == True:
    print("x为真")

# 推荐
if x:
    print("x为真")
 

2. 浮点数比较

# 不推荐
x = 0.1 + 0.2
if x == 0.3:  # 可能为False,因浮点数精度问题
    print("相等")

# 推荐
if abs(x - 0.3) < 1e-9:  # 使用容差值比较
    print("近似相等")  # 输出
 

3. 空容器检查

# 推荐
my_list = []
if not my_list:  # 直接检查容器是否为空
    print("列表为空")  # 输出

# 不推荐(冗余)
if len(my_list) == 0:
    print("列表为空")

八、总结

Python 的条件控制机制提供了灵活且简洁的语法,支持从简单判断到复杂模式匹配的各种场景。掌握以下要点可编写出更健壮的代码:

  • 使用if-elif-else处理多分支逻辑
  • 利用条件表达式简化赋值操作
  • 理解真值测试规则,避免冗余判断
  • 在 Python 3.10 + 中使用match-case处理复杂模式匹配
  • 注意浮点数比较的精度问题

合理运用条件控制语句是构建高效、可读 Python 程序的基础

posted on 2025-11-10 09:12  小陶coding  阅读(49)  评论(0)    收藏  举报