【Python】Python常用控制结构详解:条件判断、遍历与循环控制
Python提供了多种控制结构来处理逻辑判断和循环操作,包括if-else
条件分支、switch
替代方案、遍历方法以及循环控制语句break
和continue
。以下是对这些功能的详细说明及示例:
一、条件判断:if-else
与多分支结构
- 单分支结构
• 语法:仅当条件为True
时执行代码块。
if condition:# 条件成立时执行
示例(网页6):
age = 18
if age >= 18:print("已成年")
- 双分支结构(
if-else
)
• 语法:根据条件真假执行不同代码块。
if condition:# True时执行
else:# False时执行
示例(网页7):
a = 20
if a > 10:print("a大于10")
else:print("a小于等于10")
- 多分支结构(
if-elif-else
)
• 语法:处理多个互斥条件。
if condition1:# 条件1成立时执行
elif condition2:# 条件2成立时执行
else:# 其他情况执行
示例(网页8):
score = 85
if score >= 90:print("优秀")
elif score >= 80:print("良好")
else:print("需努力")
二、switch
替代方案
Python无原生switch
语句,但可通过以下方式实现类似功能:
- 字典映射
• 用法:通过键值对映射不同条件对应的操作。
def switch_case(value):cases = {1: "Case 1",2: "Case 2"}return cases.get(value, "默认值")
示例(网页11):
key = 2
result = switch_case(key) # 输出:Case 2
match-case
(Python 3.10+)
• 语法:类似switch
的模式匹配(网页9):
match value:case 1:print("匹配1")case 2:print("匹配2")case _:print("默认")
- 函数映射
• 用法:将条件映射到函数执行复杂逻辑(网页10):
def action_a(): return "处理A"
def action_b(): return "处理B"
switcher = {"A": action_a, "B": action_b}
func = switcher.get(key, lambda: "默认")
func() # 执行对应函数
三、遍历方法
- 遍历序列(列表、元组、字符串)
•for
循环:
for item in [1, 2, 3]:print(item)
• enumerate
获取索引:
for index, value in enumerate(["a", "b"]):print(f"索引{index}: 值{value}")
- 遍历字典
• 键值对遍历:
person = {"name": "Alice", "age": 25}
for key, value in person.items():print(f"{key}: {value}")
• 仅遍历键或值:
for key in person.keys(): # 遍历键
for value in person.values(): # 遍历值
- 遍历集合
• 示例(网页12):
my_set = {1, 2, 3}
for num in my_set:print(num)
四、循环控制:break
与continue
break
终止循环
• 作用:立即退出当前循环。
for num in range(10):if num == 5:break # 终止循环print(num) # 输出0-4
continue
跳过当前迭代
• 作用:跳过本次循环剩余代码,进入下一次迭代。
for num in range(10):if num % 2 == 0:continue # 跳过偶数print(num) # 输出1,3,5,7,9
- 综合应用
• 过滤数据(网页15):
numbers = [1, 3, -5, 7, -2]
for num in numbers:if num < 0:continue # 跳过负数print(f"正数:{num}")
五、总结与对比
结构/语句 | 用途 | 示例场景 | 来源 |
---|---|---|---|
if-else | 条件分支判断 | 用户年龄验证 | 网页7、8 |
字典映射替代switch | 多条件映射处理 | 状态码处理 | 网页9、11 |
for 遍历 | 迭代序列/集合元素 | 列表数据逐个处理 | 网页12、13 |
break /continue | 控制循环流程 | 提前终止循环或跳过特定项 | 网页14、15、16 |
通过灵活组合这些结构,可高效处理逻辑判断、数据遍历与循环控制。具体实现时,建议根据场景选择最简洁的方式(如字典映射替代多分支if-elif
)。