百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

30天学会Python编程:5. Python流程控制

off999 2025-09-12 01:26 25 浏览 0 评论

5.1 流程控制概述

5.1.1 控制结构分类

Python流程控制主要分为三种基本结构:

5.1.2 控制结构基本概念

表5-1 流程控制基本概念

概念

描述

对应关键字

条件执行

根据条件选择执行路径

if, elif, else

循环

重复执行代码块

while, for

循环控制

改变循环正常流程

break, continue

异常处理

处理程序运行时错误

try, except, finally

5.2 条件语句(if)

5.2.1 if语句基本结构

语法原型

if condition1:
    # 代码块1
elif condition2:
    # 代码块2
else:
    # 代码块3

执行流程图

5.2.2 条件表达式

三元运算符形式

value = true_value if condition else false_value

应用示例

age = 20
status = "成年" if age >= 18 else "未成年"
print(f"年龄{age}:{status}")

5.2.3 条件判断技巧

多条件组合

# 检查分数等级
score = 85
if 90 <= score <= 100:
    grade = "A"
elif 80 <= score < 90:
    grade = "B"
else:
    grade = "C"

使用any()/all()

conditions = [False, True, True]
if any(conditions):  # 任意为真
    print("至少一个条件满足")
if all(conditions):  # 全部为真
    print("所有条件都满足")

5.3 循环结构

5.3.1 while循环

语法原型

while condition:
    # 循环体
else:
    # 正常结束循环时执行(非break退出)

典型应用

# 猜数字游戏
import random
target = random.randint(1, 100)
count = 0

while True:
    guess = int(input("猜数字(1-100): "))
    count += 1
    if guess == target:
        print(f"恭喜!猜了{count}次")
        break
    elif guess < target:
        print("猜小了")
    else:
        print("猜大了")

5.3.2 for循环

语法原型

for item in iterable:
    # 循环体
else:
    # 正常结束循环时执行

迭代对象示例

# 遍历字符串
for char in "Python":
    print(char, end=" ")
# 输出:P y t h o n

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

5.3.3 range对象

创建数值序列

range(start, stop, step)

实际应用

# 生成1-10的平方列表
squares = [x**2 for x in range(1, 11)]

# 反向遍历
for i in range(10, 0, -1):
    print(i, end=" ")
# 输出:10 9 8 7 6 5 4 3 2 1 

5.4 循环控制语句

5.4.1 break与continue

功能对比

实际应用

# 查找第一个3的倍数
numbers = [1, 5, 9, 2, 6, 4]
for num in numbers:
    if num % 3 == 0:
        print(f"找到第一个3的倍数: {num}")
        break

# 跳过奇数打印偶数
for i in range(10):
    if i % 2 != 0:
        continue
    print(i, end=" ")
# 输出:0 2 4 6 8

5.4.2 else子句

循环else特性

  • 当循环没有被break中断时执行
  • 适用于搜索场景

典型应用

# 检查质数
n = 13
for i in range(2, int(n**0.5)+1):
    if n % i == 0:
        print(f"{n}不是质数")
        break
else:
    print(f"{n}是质数")

5.5 异常处理

5.5.1 try-except结构

基本语法

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

异常处理流程

5.5.2 常见异常类型

表5-2 Python常见异常类型

异常类型

触发场景

示例

ValueError

值错误

int("abc")

TypeError

类型错误

"a" + 1

IndexError

索引越界

[1,2][3]

KeyError

键不存在

{}["key"]

ZeroDivisionError

除零错误

1/0

FileNotFoundError

文件未找到

open("nonexist.txt")

5.5.3 自定义异常

class MyError(Exception):
    """自定义异常类"""
    def __init__(self, message):
        self.message = message

try:
    raise MyError("发生自定义错误")
except MyError as e:
    print(f"捕获到自定义异常: {e.message}")

5.6 综合应用

案例1:成绩评级系统

def grade_system():
    """根据分数自动评级"""
    while True:
        try:
            score = float(input("请输入成绩(0-100,q退出): "))
            if not 0 <= score <= 100:
                raise ValueError("成绩超出范围")
            
            if score >= 90:
                grade = "A"
            elif score >= 80:
                grade = "B"
            elif score >= 70:
                grade = "C"
            elif score >= 60:
                grade = "D"
            else:
                grade = "F"
            
            print(f"成绩评级: {grade}")
        
        except ValueError as e:
            if str(score).lower() == 'q':
                print("退出系统")
                break
            print(f"输入错误: {e}")
        except Exception as e:
            print(f"发生未知错误: {e}")

if __name__ == "__main__":
    grade_system()

案例2:素数生成器

def is_prime(n):
    """判断是否为素数"""
    if n < 2:
        return False
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            return False
    return True

def prime_generator(limit):
    """生成素数序列"""
    count = 0
    num = 2
    while count < limit:
        if is_prime(num):
            yield num
            count += 1
        num += 1

# 使用示例
print("前10个素数:")
for prime in prime_generator(10):
    print(prime, end=" ")
# 输出:2 3 5 7 11 13 17 19 23 29

5.7 学习路线图

5.8 学习总结

  1. 核心要点
  2. 掌握条件判断的各种形式
  3. 理解while和for循环的应用场景
  4. 熟练使用循环控制语句
  5. 正确处理程序异常
  6. 实践建议
  7. 避免过深的嵌套结构
  8. 循环中使用else处理正常结束情况
  9. 异常处理要具体化(避免裸except)
  10. 使用生成器优化内存消耗
  11. 进阶方向
  12. 上下文管理器(with语句)
  13. 协程与异步编程
  14. 迭代器协议实现
  15. 异常链与异常包装
  16. 常见陷阱
  17. 混淆赋值(=)和相等(==)
  18. 循环中修改迭代对象
  19. 异常处理掩盖真实错误
  20. 死循环问题(while True无退出条件)

持续更新Python编程学习日志与技巧,敬请关注!


#编程# #python# #在头条记录我的2025#


相关推荐

windowsxp下载网站(windows xp download)

目前无法下载因为红色警戒XP电脑版是一款已经停止开发的游戏,官方已经停止了对其的支持和更新。虽然网上有一些模拟器可以运行该游戏,但是安装和使用相对困难,而且可能存在版权问题。建议玩家选择其他同类型的游...

没人用过的激活码没过期(没人用过的激活码没过期可以用吗)

迷你世界并不存在什么激活码的。《迷你世界》是一款高度自由的休闲类3D沙盒游戏,有着非常方便快捷的多人联机模式,只要有网络就能和各个地方的小伙伴们一起玩。这里没有等级和规则限制,没有规定的玩法,只有随心...

2017年联想笔记本电脑有几款

17年的笔记本电脑可以勉强安装一下win10系统试试。关键看你的内存有多少,内存大于4个G的话可以安装win10速度不会太慢。最好是安装win7系统,这样能发挥你这台电脑的所有的性能,你用起来也会感觉...

当前显卡排名(当下显卡排行)

101、Irispro5802、Iris62002、Iris52004、UHD630/6205、HD6306、HD5307、HD46008、HD44009、HD420010、HD40...

win10专业版激活变成企业版(win10专业版激活变成企业版怎么办)

win10永久激活密钥很少,一旦网上有分享,等你拿到时就超过期限了,一般是要购买。激活win10系统可以使用激活工具:win10激活工具下载一、win10专业版产品密钥NXRQM-CXV6P-PBGV...

ghostwinxp下载纯净版(ghost win7纯净版下载)

可以下载的,现在官网和其他网站上都可以下载xp原版的。可以通过以下步骤下载我的世界游戏到xp系统中:1.首先打开你的浏览器软件,搜索关键字“我的世界xp版下载”,找到可靠下载地址;2.从下载页面下...

惠普完整版驱动(惠普最新驱动)

惠普官方的标准操作:HP1050安装驱动步骤:一:准备:拿出驱动光盘放入光驱或到HP官网下载完整版驱动。二:不要插USB数据线或插上线打印机电源不要开,安装完整版驱动,当程序提示插入USB数据线时,插...

浏览器最好用的(浏览器最好用的插件)

一、谷歌浏览器谷歌浏览器是公认最好用的,这个可以从市场占有率看出端倪,超过三分之二的用户使用谷歌浏览器。Chrome浏览器以简洁快速著称,不管是普通用户还是开发人员,chrome浏览器都是首选。Chr...

fast路由器6位初始密码(fast路由器的密码)

答:fast路由器初始密码是admin;新款的迅捷无线路由器,管理界面没有初始密码。查看迅捷无线路由器底部标签,标签上标注了admin,说明初始密码就是admin;如果没有,说明该路由器没有初始密码。...

硬盘恢复软件哪个好(硬盘 恢复软件)

迷你兔数据恢复工具:支持恢复硬盘丢失的数据Pc3000数据恢复软件是一款非常专业的硬盘修复工具,能够对电脑硬盘资料数据进行修复,通过使用这个软件可以解决硬盘数据丢失故障,是一个用户进行硬盘资料修复好帮...

十大品牌监控摄像头排名(十大品牌监控摄像头排名第一)

答:1、华为/HUAWEI9.92、小米/MI9.63、罗技/Logitech9.64、海康威视/HIKVISION9.25、乔安/Jooan9.26、普联/TP-LINK9.27、乐橙8.98、萤石...

360手机助手老旧版本大全(360手机助手 老版本)

在设置里面找到历史记录就可能查看360手机助手·换机神器是安卓系统的换机软件,因为苹果的换机软件是爱思。1、打开360手机卫士,登陆账号,点击账号。2、进入个人中心,点击账户安全,在密保工具中,点击解...

系统应用工程师(系统工程的应用)

信息软件系统工程师有前途,毕业以后可以从事软件开发,软件系统的维护,运营等等,和计算机有关的工作内容,因为计算机专业可以说是一个非常热门的专业,很多的大型企业公司基本上都是以计算机研发为主的,薪资福利...

qq恢复系统常见问题(qq恢复系统常见问题及答案)

QQ好友恢复系统一直显示服务器频繁有可能是系统的问题,你的qq重新更新一下,或者你卸载了重新下载一下就有可能好了。您好,很高兴为您解答:您可以试试清空下IE内存,然后关掉不必要的程序,尽量在电脑运...

win10自带的office不见了(win10自带的office在哪个文件夹)

win10系统的office在电脑硬盘office的安装目录里,具体打开安装目录的操作如下:1、首先我们右键点击word,打开方式,选择默认程序打开。2、在默认框打钩,点击【浏览】。3、打开你安装of...

取消回复欢迎 发表评论: