【Python】Python常用控制结构详解:条件判断、遍历与循环控制

Python提供了多种控制结构来处理逻辑判断和循环操作,包括if-else条件分支、switch替代方案、遍历方法以及循环控制语句breakcontinue。以下是对这些功能的详细说明及示例:


一、条件判断:if-else与多分支结构

  1. 单分支结构
    • 语法:仅当条件为True时执行代码块。
python 复制代码
if condition:
    # 条件成立时执行

示例(网页6):

python 复制代码
age = 18
if age >= 18:
    print("已成年")
  1. 双分支结构(if-else
    • 语法:根据条件真假执行不同代码块。
python 复制代码
if condition:
    # True时执行
else:
    # False时执行

示例(网页7):

python 复制代码
a = 20
if a > 10:
    print("a大于10")
else:
    print("a小于等于10")
  1. 多分支结构(if-elif-else
    • 语法:处理多个互斥条件。
python 复制代码
if condition1:
    # 条件1成立时执行
elif condition2:
    # 条件2成立时执行
else:
    # 其他情况执行

示例(网页8):

python 复制代码
score = 85
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
else:
    print("需努力")

二、switch替代方案

Python无原生switch语句,但可通过以下方式实现类似功能:

  1. 字典映射
    • 用法:通过键值对映射不同条件对应的操作。
python 复制代码
def switch_case(value):
    cases = {
        1: "Case 1",
        2: "Case 2"
    }
    return cases.get(value, "默认值")

示例(网页11):

python 复制代码
key = 2
result = switch_case(key)  # 输出:Case 2
  1. match-case(Python 3.10+)
    • 语法:类似switch的模式匹配(网页9):
python 复制代码
match value:
    case 1:
        print("匹配1")
    case 2:
        print("匹配2")
    case _:
        print("默认")
  1. 函数映射
    • 用法:将条件映射到函数执行复杂逻辑(网页10):
python 复制代码
def action_a(): return "处理A"
def action_b(): return "处理B"
switcher = {"A": action_a, "B": action_b}
func = switcher.get(key, lambda: "默认")
func()  # 执行对应函数

三、遍历方法

  1. 遍历序列(列表、元组、字符串)
    for循环:
python 复制代码
for item in [1, 2, 3]:
    print(item)

enumerate获取索引:

python 复制代码
for index, value in enumerate(["a", "b"]):
    print(f"索引{index}: 值{value}")
  1. 遍历字典
    • 键值对遍历:
python 复制代码
person = {"name": "Alice", "age": 25}
for key, value in person.items():
    print(f"{key}: {value}")

• 仅遍历键或值:

python 复制代码
for key in person.keys():   # 遍历键
for value in person.values():  # 遍历值
  1. 遍历集合
    • 示例(网页12):
python 复制代码
my_set = {1, 2, 3}
for num in my_set:
    print(num)

四、循环控制:breakcontinue

  1. break终止循环
    • 作用:立即退出当前循环。
python 复制代码
for num in range(10):
    if num == 5:
        break  # 终止循环
    print(num)  # 输出0-4
  1. continue跳过当前迭代
    • 作用:跳过本次循环剩余代码,进入下一次迭代。
python 复制代码
for num in range(10):
    if num % 2 == 0:
        continue  # 跳过偶数
    print(num)  # 输出1,3,5,7,9
  1. 综合应用
    • 过滤数据(网页15):
python 复制代码
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)。

相关推荐
nnerddboy7 小时前
Rust教程04:引用、借用与切片
开发语言·后端·rust
jerryinwuhan8 小时前
《Python数据预处理》第四章
开发语言·python
长江&后浪8 小时前
防火墙的描述
开发语言·网络·php
观无8 小时前
若依EasyExcel实现单元格合并
开发语言·前端·javascript
雨晨源码(同名B站)8 小时前
基于Python的网易云音乐评论数据情感化分析系统 音乐爬虫信息可视化 |SnowNLP评论情感分析
开发语言·hadoop·爬虫·python·信息可视化·毕业设计
阿童木写作8 小时前
跨境电商图片翻译工具推荐:跨马翻译批量处理视频字幕与抠图
python·音视频
我不是疯子是傻子8 小时前
串口通信数据帧粘包拆包再进化:基于 Qt 的滑动窗口与 CRC 校验实战
开发语言·qt
程序员老陆9 小时前
Qt中实现窗口真全屏(覆盖Windows任务栏)
开发语言·windows·qt
霸道流氓气质9 小时前
Java中信号量(Semaphore):从本地到分布式
java·开发语言·分布式
怪奇云呼军9 小时前
G.711、Opus 和重采样会拖慢识别吗?闪电智能VoiceAgent 的音频入口怎么选
java·人工智能·python·算法·云计算·音视频