【蓝桥杯7天速成】第八章:Python循环嵌套详解

Python循环嵌套详解

目录

  1. 循环类型回顾
  2. 循环嵌套概念
  3. 循环嵌套示例
  4. 跳出多重循环
  5. 经典例题解析
  6. 课后练习

1. 循环类型回顾

1.1 FOR循环

  • 特点:已知循环次数
  • 适用场景:遍历序列(range/list等)
  • 执行机制:将序列元素逐个赋值给循环变量
# 示例:计算1-99累加和
total = 0
for i in range(1, 100):
    total += i

1.2 WHILE循环

  • 特点:未知循环次数,通过条件控制
  • 适用场景:满足特定条件时终止循环
# 示例:求和超过1000时停止
total = 0
num = 1
while total <= 1000:
    total += num
    num += 1

1.3 循环转换

  • FOR和WHILE循环可互相转换
  • 选择依据:是否明确循环次数

2. 循环嵌套概念

2.1 基本结构

  • 外层循环(外循环)
  • 内层循环(内循环)
  • 执行顺序:外循环执行一次,内循环完整执行一轮
# 示例:3x3网格坐标
for i in range(3):
    for j in range(3):
        print(f"({i}, {j})")

2.2 执行次数计算

  • 总次数 = 外层循环次数 × 内层循环次数
  • 示例:外层3次,内层3次 → 3×3=9次

3. 循环嵌套示例

3.1 可变内层循环

for i in range(5):
    for j in range(i, 5):
        print(f"i={i}, j={j}")
# 执行次数:15次(三角形模式)

3.2 混合循环类型

# FOR嵌套WHILE示例
for x in range(1, 3):
    y = 0
    while y**2 <= 10 - x**2:
        print(x, y)
        y += 1

4. 跳出多重循环

4.1 单层跳出

# BREAK默认跳出当前层循环
for i in range(3):
    for j in range(3):
        if i == j:
            print("Found!")
            break  # 仅跳出内层循环

4.2 多层跳出技巧

# 使用标志变量
stop_flag = False
for i in range(5):
    for j in range(5):
        if condition:
            stop_flag = True
            break
    if stop_flag:
        break

5. 经典例题解析

5.1 阶乘求和

题目:计算1! + 2! + … + n!

n = int(input())
total = 0
for i in range(1, n+1):
    fact = 1
    for j in range(1, i+1):
        fact *= j
    total += fact
print(total)

5.2 百钱买百鸡

题目:母鸡15元/只,公鸡10元/只,小鸡5元/只,100元买100只

# 优化解法
for x in range(0, 7):  # 母鸡最多6只
    y = 10 - 2*x       # 公鸡数量
    z = 80 + x         # 小鸡数量
    if y >= 0 and z >= 0:
        print(x, y, z)

5.3 水仙花数

题目:三位数满足各位立方和等于自身

for num in range(100, 1000):
    a = num // 100
    b = (num // 10) % 10
    c = num % 10
    if a**3 + b**3 + c**3 == num:
        print(num)

5.4 素数判断

题目:输出指定区间内的素数

l, r = map(int, input().split())
for num in range(l, r+1):
    if num < 2:
        continue
    is_prime = True
    for i in range(2, int(num**0.5)+1):
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        print(num)

6. 课后练习

  1. 空心菱形:输入N,输出2N-1行空心菱形
  2. 乘法表:打印9×9乘法表
  3. 日期遍历:输出2000-2020年间所有日期
  4. 质因数分解:输入正整数,输出质因数分解式

示例代码片段:

# 空心菱形参考代码
n = int(input())
for i in range(1, 2*n):
    spaces = abs(n - i)
    stars = 2*(n - spaces) - 1
    if i == 1 or i == 2*n-1:
        print(' ' * spaces + '*')
    else:
        print(' ' * spaces + '*' + ' ' * (stars-2) + '*')

提示:理解循环执行顺序是掌握嵌套的关键,建议使用调试工具观察变量变化!

你可能感兴趣的:(蓝桥杯,蓝桥杯,python,职场和发展)