Python快速学习——第8章:循环语句

第八章:循环语句

8.1 什么是循环语句?

循环语句就像 一个不知疲倦的机器人,能够重复执行相同的任务,直到满足特定条件才停止。它让程序能够自动化处理重复性工作,大大提高效率。

python 复制代码
# 简单的循环示例
for i in range(5):
    print(f"这是第{i+1}次循环")

8.2 for循环

8.2.1 基本的for循环

for循环用于遍历序列(如列表、字符串、元组等)中的每个元素:

语法格式

python 复制代码
for 变量 in 序列:
    # 循环体代码
python 复制代码
# 示例:遍历列表
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
    print(f"我喜欢吃{fruit}")

# 示例:遍历字符串
text = "Hello"
for char in text:
    print(char)

8.2.2 使用range()函数

range()函数生成一个数字序列,常用于控制循环次数:

python 复制代码
# range()函数的三种用法
range(5)        # 0, 1, 2, 3, 4
range(1, 6)     # 1, 2, 3, 4, 5
range(1, 10, 2) # 1, 3, 5, 7, 9(步长为2)

# 实际应用
for i in range(5):
    print(f"循环第{i+1}次")

for i in range(1, 6):
    print(f"数字:{i}")

for i in range(0, 10, 2):
    print(f"偶数:{i}")

8.2.3 使用enumerate()获取索引

在遍历序列时,如果需要同时获取索引和值,可以使用enumerate():

python 复制代码
fruits = ["苹果", "香蕉", "橙子"]

# 同时获取索引和值
for index, fruit in enumerate(fruits):
    print(f"第{index}个水果是:{fruit}")

# 可以指定起始索引
for index, fruit in enumerate(fruits, start=1):
    print(f"第{index}个水果是:{fruit}")

8.3 while循环

8.3.1 基本的while循环

while循环在条件为真时重复执行代码块:

语法格式

python 复制代码
while 条件:
    # 循环体代码
python 复制代码
# 示例
count = 1
while count <= 5:
    print(f"计数:{count}")
    count += 1  # 重要:必须更新条件变量,否则会无限循环

8.3.2 无限循环与退出条件

while循环特别适合处理不确定循环次数的情况:

python 复制代码
# 用户输入直到特定值退出 
total = 0
while True:
    num = int(input("请输入数字(输入0退出):"))
    if num == 0:
        break #跳出
    total += num
print(f"总和:{total}")

8.4 循环控制语句

8.4.1 break语句

break语句用于立即退出整个循环:

python 复制代码
# 找到第一个满足条件的数字就退出
numbers = [1, 3, 5, 8, 10, 13, 15]
for num in numbers:
    if num % 2 == 0:
        print(f"找到第一个偶数:{num}")
        break
else:
    print("没有找到偶数")

8.4.2 continue语句

continue语句跳过当前循环的剩余代码,直接开始下一次循环:

python 复制代码
# 只处理奇数,跳过偶数
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers:
    if num % 2 == 0:
        continue  # 跳过偶数
    print(f"奇数:{num}")

8.4.3 else子句(本人不常用)

循环的else子句在循环正常完成(没有被break中断)时执行:

python 复制代码
# for循环的else
for i in range(5):
    print(i)
else:
    print("循环正常结束")

# while循环的else
count = 0
while count < 3:
    print(count)
    count += 1
else:
    print("while循环正常结束")

8.5 嵌套循环

循环内部可以包含另一个循环,形成嵌套结构:

python 复制代码
# 打印乘法表
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f"{j}×{i}={i*j}", end="\t")
    print()  # 换行

# 处理二维数据
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

for row in matrix:
    for num in row:
        print(num, end=" ")
    print()

8.6 循环的注意事项

8.6.1 避免无限循环

python 复制代码
# 危险的无限循环
# count = 0
# while count < 5:  # 如果忘记更新count,就会无限循环
#     print("无限循环...")

# 安全的写法
count = 0
while count < 5:
    print(f"计数:{count}")
    count += 1  # 确保更新条件变量

8.6.2 不要在循环中修改正在遍历的序列

python 复制代码
# 危险的写法
numbers = [1, 2, 3, 4, 5]
# for num in numbers:
#     if num % 2 == 0:
#         numbers.remove(num)  # 这会改变序列,导致意外结果

# 安全的写法:创建副本或使用列表推导式
numbers = [1, 2, 3, 4, 5]
numbers = [num for num in numbers if num % 2 != 0]  # 只保留奇数

8.6.3 合理使用循环else子句

python 复制代码
# else子句的典型用法:搜索场景
def find_number(numbers, target):
    for i, num in enumerate(numbers):
        if num == target:
            print(f"找到目标数字,位置:{i}")
            break
    else:
        print("没有找到目标数字")

numbers = [1, 3, 5, 7, 9]
find_number(numbers, 5)  # 找到目标数字,位置:2
find_number(numbers, 4)  # 没有找到目标数字

8.7 循环与函数结合

循环经常与函数结合使用,使代码更加模块化:

python 复制代码
def calculate_statistics(numbers):
    """计算数字列表的统计信息"""
    if not numbers:
        return None

    total = 0
    count = 0
    max_val = numbers[0]
    min_val = numbers[0]

    for num in numbers:
        total += num
        count += 1
        if num > max_val:
            max_val = num
        if num < min_val:
            min_val = num

    average = total / count
    return {
        "总数": total,
        "平均值": average,
        "最大值": max_val,
        "最小值": min_val
    }

# 使用函数
data = [23, 45, 67, 12, 89, 34]
stats = calculate_statistics(data)
for key, value in stats.items():
    print(f"{key}: {value}")

本章笔记:

  • 循环语句让程序能够重复执行代码块,提高效率。
  • for循环用于遍历序列或控制固定次数的循环。
  • while循环在条件为真时重复执行,适合不确定循环次数的情况。
  • break语句立即退出循环,continue语句跳过当前迭代。
  • 循环可以嵌套使用,处理复杂的数据结构。
  • 循环常用于数据统计、处理、用户交互等场景。
  • 合理使用循环优化技巧可以提高代码性能。
  • 注意避免无限循环和在循环中修改正在遍历的序列。
  • 循环与函数结合可以使代码更加模块化和可重用。
相关推荐
学测绘的小杨10 小时前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
zzzzzz31017 小时前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐17 小时前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱1 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot1 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海1 天前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱2 天前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
曲幽2 天前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict
荣码2 天前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
兵慌码乱2 天前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理