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
)。