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

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

off999 2025-09-12 01:26 16 浏览 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#


相关推荐

笔记本windows8系统下载(笔记本电脑系统win8)

在电脑上面就可以下载,打开浏览器搜索windous8系统会出现一些下拉选择,选择第一条或者选择有官网字样的,就直接有下载按钮,然后点击下载就可以了win8可以支持现在可以见到的所有Photosho...

win 11(win 11 25h2)

 Windows11是由微软公司(Microsoft)开发的操作系统,应用于计算机和平板电脑等设备。于2021年6月24日发布,2021年10月5日发行。Windows11提供了许多创新...

手机视频恢复软件免费版下载

手机视频删了怎么恢复  一、安卓手机视频恢复  1.打开电脑,移动鼠标,进入互盾安卓恢复大师官网,下载并安装该软件。手机连接至电脑。手机视频删了怎么恢复  2.打开运行互盾安卓恢复大师,在软件界面看到...

diy电脑装机教程(diy电脑组装步骤)

1,看价格。根据自己的预算价格,选择适合该价格的电脑。注意不要以过高的价格买到配置过低的电脑;2,看性能。根据自己需要的电脑性能,以合理的价格购买。注意不要以过高的价格买到配置过低的电脑。电脑的配置如...

u盘莫名其妙要格式化(u盘总是要格式化什么意思)

如果您在使用U盘时突然收到提示需要格式化的消息,这可能是由于以下原因之一引起的:U盘感染病毒:U盘中可能存在恶意病毒,这些病毒可能会导致U盘无法正常使用。当您尝试打开U盘时,系统会提示您进行格式化操作...

win7家庭版原版(win7家庭版价格)

你的win7旗舰版应该是个盗版软件,在你使用的过程中你可能触碰到了后台升级,升级完以后就变成了家庭版了,在你不知不觉中被改变的,厄这个软件属于盗版的,厄升级完以后没什么大区别,这个旗舰版家庭版在家里面...

win10自动更新失败怎么办(win10自动升级失败)

安装更新失败有许多原因。WindowsUpdate需要能够扫描您的计算机以了解需要哪些更新,并能够下载和安装这些更新。如果某个阶段遇到问题,则可能阻止某个更新安装到计算机中。有关错误或失败的详细信...

截图的几种方法(截图的几种方法有哪些)

 第一种截图方式:按printScreen键。按一下键盘上的printScreen键以后,整个屏幕会被截取下来,截图会默认保存在剪贴板中。第二种截图方式:使用微信截图。进入聊天界面,我们会发...

电脑装了两个系统怎么切换(电脑安装2个系统怎么更换启动)

1.点击运行打开电脑点击左下角的开始菜单栏选项,右击鼠标在序列栏中选择运行打开。2.输入msconfig接着在运行的输入框中输入msconfig点击确定即可打开系统配置。3.点击引导打开系统配置的页面...

linux系统哪个版本好用(最好linux系统版本)

个人比较推荐Debian这个发行版本。DebianGNU/Linux于1993年首次公布,至今已经有近30年历史了。当然其他版本比如openSUSE,Slackware,ArchLinux,Ubu...

win10激活在哪里查看(win10激活时间在哪里看)

在Windows10中,您可以通过以下方法查看激活状态:方法1:使用“设置”应用1.点击屏幕左下角的“开始”按钮,然后点击“设置”(齿轮图标)。2.在设置窗口中,点击“系统”图标。3.在“系统...

官方win10dll文件修复工具(官方win7dll文件修复工具)

当电脑丢失dll文件时,可以采用以下几种方法进行一键修复:从回收站还原:如果是不小心误删了一些计算机文件,导致电脑出现异常的情况时,首先就可以去回收站找回dll文件,如果文件还在,就可以通过还原操作来...

qq所有历史旧版本大全(qq历史版本一览表)

有2种方法。一种是:你是QQ会员。你可以把旧版打开,聊天记录上传。然后打开新的QQ,下载。第2种是:你在硬盘上装了QQ软件,然后你就点卸载(uninst),把原来的卸了。然后按原位置覆盖,装上06版。...

电脑显示器分辨率怎么调(显示分辨率无法调整)

1、以win7为例,首先右键点击桌面,在右键菜单中直接显示了屏幕分辨率的选项,用鼠标点击一下这个选项。2、在分辨率设置选项页面中,有一个分辨率的选项,点击一下这个选项,上面默认显示的数值是你现在的屏幕...

8系统(8系统点检控制包含什么)

WIndows8系统是微软目前最新的操作系统,Moto的图形界面设计,使很多已经习惯于早期windows系统的用户难以接受,Windows8是一个向平板和桌面系统妥协的产物,存在着相当多的利弊。...

取消回复欢迎 发表评论: