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

0 阅读5分钟

第八章:循环语句

8.1 什么是循环语句?

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

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

8.2 for循环

8.2.1 基本的for循环

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

语法格式

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

8.2.2 使用range()函数

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

# 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():

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循环在条件为真时重复执行代码块:

语法格式

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

8.3.2 无限循环与退出条件

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

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

8.4 循环控制语句

8.4.1 break语句

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

# 找到第一个满足条件的数字就退出
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语句跳过当前循环的剩余代码,直接开始下一次循环:

# 只处理奇数,跳过偶数
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中断)时执行:

# 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 嵌套循环

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

# 打印乘法表
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 避免无限循环

# 危险的无限循环
# count = 0
# while count < 5:  # 如果忘记更新count,就会无限循环
#     print("无限循环...")# 安全的写法
count = 0
while count < 5:
    print(f"计数:{count}")
    count += 1  # 确保更新条件变量

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

# 危险的写法
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子句

# 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 循环与函数结合

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

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语句跳过当前迭代。
  • 循环可以嵌套使用,处理复杂的数据结构。
  • 循环常用于数据统计、处理、用户交互等场景。
  • 合理使用循环优化技巧可以提高代码性能。
  • 注意避免无限循环和在循环中修改正在遍历的序列。
  • 循环与函数结合可以使代码更加模块化和可重用。