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}。")
相关推荐
码上淘金3 小时前
【Python】Python常用控制结构详解:条件判断、遍历与循环控制
开发语言·python
Brilliant Nemo3 小时前
四、SpringMVC实战:构建高效表述层框架
开发语言·python
2301_787552873 小时前
console-chat-gpt开源程序是用于 AI Chat API 的 Python CLI
人工智能·python·gpt·开源·自动化
懵逼的小黑子4 小时前
Django 项目的 models 目录中,__init__.py 文件的作用
后端·python·django
Y3174294 小时前
Python Day23 学习
python·学习
Ai尚研修-贾莲5 小时前
Python语言在地球科学交叉领域中的应用——从数据可视化到常见数据分析方法的使用【实例操作】
python·信息可视化·数据分析·地球科学
格林威5 小时前
Baumer工业相机堡盟工业相机的工业视觉中为什么偏爱“黑白相机”
开发语言·c++·人工智能·数码相机·计算机视觉
橙子199110165 小时前
在 Kotlin 中什么是委托属性,简要说说其使用场景和原理
android·开发语言·kotlin
androidwork5 小时前
Kotlin Android LeakCanary内存泄漏检测实战
android·开发语言·kotlin
qq_508576095 小时前
if __name__ == ‘__main__‘
python