Python控制结构详解

前言

一、控制结构概述

二、顺序结构

三、选择结构(分支结构)

[1. 单分支 if](#1. 单分支 if)

[2. 双分支 if-else](#2. 双分支 if-else)

[3. 多分支 if-elif-else](#3. 多分支 if-elif-else)

4.实际应用:

四、循环结构

[1. for循环](#1. for循环)

[2. while循环](#2. while循环)

[3. 循环控制语句](#3. 循环控制语句)

五、异常处理(try-except)

六、综合应用示例

场景1:

场景2:

前言

这部分内容之前写过,但感觉不是特别好,不方便以后翻阅,所以重新整理。有问题欢迎随时指正。

一、控制结构概述

Python的控制结构分为三种基本类型:顺序结构选择结构(分支结构)循环结构。它们决定了代码的执行流程和逻辑。

二、顺序结构

定义 :代码按书写顺序从上到下逐行执行,无分支或循环。
示例

python 复制代码
# 变量赋值与打印输出
name = "Alice"
age = 25
print(f"Name: {name}, Age: {age}")

三、选择结构(分支结构)

根据条件判断结果,选择不同代码块执行。

1. 单分支 if

python 复制代码
# 判断数字正负
num = -5
if num > 0:
    print("正数")

2. 双分支 if-else

python 复制代码
# 根据成绩输出等级
score = 85
if score >= 90:
    print("优秀")
else:
    print("需努力")

3. 多分支 if-elif-else

python 复制代码
# 判断数字能否被2、3、5整除
num = 15
if num % 2 == 0:
    print("能被2整除")
elif num % 3 == 0:
    print("能被3整除")
elif num % 5 == 0:
    print("能被5整除")
else:
    print("不能被2、3、5整除")

4.实际应用:

用户权限验证

python 复制代码
user_role = "admin"
if user_role == "admin":
    print("显示所有管理功能")
elif user_role == "editor":
    print("显示编辑面板")
else:
    print("仅限浏览模式")

四、循环结构

重复执行某段代码,分为for循环和while循环。

1. for循环

python 复制代码
# 遍历列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

# 遍历字典
person = {"name": "Bob", "age": 30}
for key, value in person.items():
    print(f"{key}: {value}")

# 使用range函数
for i in range(5):  # 输出0-4
    print(i)

实际应用:批量文件重命名

python 复制代码
files = ["report.txt", "image.jpg", "data.csv"]
for filename in files:
    if filename.endswith(".txt"):
        print(f"处理文本文件: {filename}")

2. while循环

python 复制代码
# 计算1-10的和
sum = 0
i = 1
while i <= 10:
    sum += i
    i += 1
print(f"和为: {sum}")

实际应用:API请求重试机制

python 复制代码
max_retries = 3
retries = 0
while retries < max_retries:
    response = make_api_request()
    if response.success:
        break
    retries += 1
else:
    print("请求失败,已达最大重试次数")

3. 循环控制语句

  • break:立即退出循环。
  • continue:跳过当前迭代,进入下一次循环。
python 复制代码
# 查找第一个能被7整除的数
numbers = [12, 15, 18, 21, 24]
for num in numbers:
    if num % 7 == 0:
        print(f"找到: {num}")
        break

# 输出1-10中的奇数
for i in range(1, 11):
    if i % 2 == 0:
        continue
    print(i)

五、异常处理(try-except

python 复制代码
try:
    # 可能出错的代码
except ExceptionType:
    # 处理异常
finally:
    # 无论是否异常都会执行

实际应用:安全除法计算

python 复制代码
def safe_divide(a, b):
    try:
        result = a / b
    except ZeroDivisionError:
        print("错误:除数不能为零")
        return None
    except TypeError:
        print("错误:输入必须为数字")
        return None
    else:
        print(f"结果为:{result}")
        return result
    finally:
        print("计算完成")

safe_divide(10, 2)   # 正常输出
safe_divide(5, 0)    # 触发ZeroDivisionError

六、综合应用示例

场景1

简易购物车系统

python 复制代码
cart = []
prices = {"apple": 5.0, "banana": 3.5, "milk": 8.0}

while True:
    print("\n1. 添加商品 2. 查看购物车 3. 结账 4. 退出")
    choice = input("请选择操作:")

    if choice == "1":
        item = input("输入商品名称:").lower()
        if item in prices:
            cart.append(item)
            print(f"{item} 已加入购物车")
        else:
            print("商品不存在!")

    elif choice == "2":
        print("购物车内容:")
        for item in set(cart):
            print(f"{item}: {cart.count(item)}件")

    elif choice == "3":
        total = sum(prices[item] for item in cart)
        print(f"总金额:{total:.2f}元")
        break

    elif choice == "4":
        print("感谢使用!")
        break

    else:
        print("无效的输入,请重试")

场景2:

猜数字游戏

python 复制代码
import random

secret_number = random.randint(1, 100)
attempts = 0
max_attempts = 5

print("欢迎来到猜数字游戏!数字在1-100之间。")

while attempts < max_attempts:
    guess = int(input("请输入你的猜测: "))
    attempts += 1

    if guess < secret_number:
        print("太小了!")
    elif guess > secret_number:
        print("太大了!")
    else:
        print(f"恭喜你!用了{attempts}次猜中了数字{secret_number}。")
        break
else:
    print(f"很遗憾,机会用完了。正确答案是{secret_number}。")
相关推荐
闪电麦坤957 分钟前
C#:尝试解析方法TryParse
开发语言·c#
我不是程序猿儿9 分钟前
【C#】构造协议帧通过串口下发
开发语言·c#
Dontla19 分钟前
Python Flask并发demo(http并发与锁)独占接口、monkey功能还不太确定
python·http·flask
海天一色y32 分钟前
Pycharm(十一):字符串练习题
ide·python·pycharm
千野竹之卫40 分钟前
2025最新云渲染网渲100渲染农场使用方法,渲染100邀请码1a12
开发语言·前端·javascript·数码相机·3d·3dsmax
小白的高手之路40 分钟前
常用的卷积神经网络及Pytorch示例实现
人工智能·pytorch·python·深度学习·神经网络·cnn
滴答滴答嗒嗒滴44 分钟前
用 Python 实现机器学习小项目:从入门到实战
开发语言·python·机器学习
byxdaz1 小时前
Qt中绘制不规则控件
开发语言·qt
繁星蓝雨1 小时前
Qt使用QGraphicsView绘制线路图————附带详细实现代码
开发语言·qt
martian6651 小时前
《Spring Boot全栈开发指南:从入门到生产实践》
java·开发语言·spring boot