当前位置: 首页 > news >正文

Python控制结构详解

前言

一、控制结构概述

二、顺序结构

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

1. 单分支 if

2. 双分支 if-else

3. 多分支 if-elif-else

4.实际应用:

四、循环结构

1. for循环

2. while循环

3. 循环控制语句

五、异常处理(try-except)

六、综合应用示例

场景1:

场景2:

前言

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

一、控制结构概述

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

二、顺序结构

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

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

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

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

1. 单分支 if

# 判断数字正负
num = -5
if num > 0:
    print("正数")

2. 双分支 if-else

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

3. 多分支 if-elif-else

# 判断数字能否被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.实际应用:

用户权限验证

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

四、循环结构

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

1. for循环

# 遍历列表
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)

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

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

2. while循环

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

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

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

3. 循环控制语句

  • break:立即退出循环。
  • continue:跳过当前迭代,进入下一次循环。
# 查找第一个能被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

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

实际应用:安全除法计算

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

简易购物车系统

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:

猜数字游戏

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}。")
http://www.dtcms.com/a/99313.html

相关文章:

  • 群体智能优化算法-流向算法(Flow Direction Algorithm, FDA,含Matlab源代码)
  • FALL靶机渗透实战:从信息收集到特权升级的完整链分析
  • postgresql 重置对应表序列最大值
  • 药用植物次生代谢的多层调控-文献精读123
  • 如何利用<ruby>、<rt>、<rp>标签实现中文注音或字符注释?
  • 车载以太网网络测试 -25【SOME/IP-报文格式-1】
  • AI助力高效办公:如何利用AI制作PPT提升工作效率
  • RAG模型
  • 医疗CMS高效管理:简化更新维护流程
  • Open HarmonyOS 5.0 分布式软总线子系统 (DSoftBus) 详细设计与运行分析报告
  • 自动化测试知识详解
  • RuoYi基础学习
  • 拦截器和过滤器详解
  • 前端D3.js面试题及参考答案
  • Linux安装Cmake (Centos 7.9)
  • Python小练习系列 Vol.3:生成有效括号组合(回溯 + DFS)
  • 【15】Selenium 爬取实战
  • stringstream的使用
  • d2025329
  • PyGame开发贪吃蛇小游戏
  • Hive SQL中 ?+.+ 的用法,字段剔除
  • 在Qt中判断输入的js脚本是否只包含函数
  • 【Linux】常见信号 + 进程和作业
  • Java常用异步方式总结
  • 硬实时操作系统(Hard Real-Time OS)与软实时操作系统(Soft Real-Time OS)的区别
  • matplot显示中文
  • json-server使用方法
  • Android14 SystemUI中添加第三方AIDL
  • java.util包之java.util.Collection介绍
  • 并发编程之最小化共享