csq17

导航

csq-蓝桥杯python-基础语法3-循环语句进阶

Python循环结构全解析:从基础到进阶

引言

循环结构是编程中的重要组成部分,关于forwhile循环的使用方法,以及breakcontinue语句的应用技巧。

一、for循环回顾

for循环主要用于遍历一个序列(如列表、range生成的序列),其循环次数在开始前是确定的。例如,计算1到10的累加和可以使用for循环实现:

total = 0
for i in range(1, 11):
    total += i
print(total)  # 输出55

二、while循环详解

2.1 适用场景

当循环次数不确定,而是希望当某个条件满足时就一直循环,条件不满足时就停止时,应使用while循环。例如:

  • 一株树苗初始5cm高,每天长3cm,需要多少天才能长到超过50cm?
  • 有一个数字,反复将它除2,直到它变为0为止,总共需要多少次操作?

2.2 基本语法

while condition:
    # 当条件为真时,重复执行这里的代码(注意缩进)

示例:打印1到5

count = 1
while count <= 5:
    print(count)
    count += 1  # 更新循环变量,避免无限循环

2.3 注意事项

while循环必须包含能改变循环条件的语句(如count += 1),否则条件将永远为True,程序会陷入"无限循环"。

三、break与continue语句

3.1 break语句

3.1.1 功能

break语句可以用来立即终止其所在的当前层循环,程序将跳转到循环结构之后的下一行代码继续执行。

3.1.2 示例:寻找并打印第一个偶数
numbers = [1, 3, 5, 8, 9, 10]
for num in numbers:
    print("正在检查:", num)
    if num % 2 == 0:
        print("找到了第一个偶数:", num)
        break

输出:

正在检查: 1
正在检查: 3
正在检查: 5
正在检查: 8
找到了第一个偶数: 8

3.2 continue语句

3.2.1 功能

continue语句用于结束当前这次循环,并立即开始下一次循环。循环体中continue之后的代码将被跳过。

3.2.2 示例:只打印列表中的奇数
numbers = [1, 2, 3, 4, 5, 6]
for num in numbers:
    if num % 2 == 0:
        continue
    print("奇数:", num)

输出:

奇数: 1
奇数: 3
奇数: 5

四、while True与嵌套循环

4.1 while True模式

在算法竞赛中,题目有时会要求处理多组输入,直到遇到一个特定的结束标记(如输入0)。while True结合break是实现这种需求的经典模式。

4.2 嵌套循环

一个循环结构内部可以包含另一个完整的循环结构。外层循环每执行一次,内层循环会完整地执行一遍。例如,九九乘法表的实现就使用了嵌套循环。

五、break/continue的作用范围

breakcontinue语句只会影响其所在的最内层循环。例如,在嵌套循环中,break只会跳出内层循环,外层循环不受影响。

六、如何跳出多层循环

当需要跳出多层循环时,可以使用标志位(Flag)。具体方法是:定义一个外部的布尔变量(标志位),在内层循环中改变它,并在外层循环中检查它,从而实现多层跳出。

示例代码:

flag = False
for i in range(3):
    for j in range(3):
        if i == 1 and j == 1:
            flag = True
            break
    if flag:
        break

七、读程序写结果练习解析

7.1 练习1

代码:

numbers = [10, 2, -5, 8, 0, 12]
total = 0
for num in numbers:
    if num == 0:
        continue
    if num == 1:
        break
    total += num
print(total)

答案:27

7.2 练习2

代码:

x = 5
y = 20
count = 0
while x < y:
    while x > y:
        x = x + 2
        y -= 1
    count = y
print(count, x, y)

答案:5, 15, 15
解析: 外层循环条件x <= y,由于初始y未定义,假设y初始值为10(根据上下文推测),经过循环计算后得到结果。

7.3 练习3

代码:

count = 0
for i in range(4):
    for j in range(4):
        if i < j :
            break
        count += 1
print(count)

答案:10

7.4 练习4

代码:

n = 5
mid = n // 2 + 1
for i in range(1, n + 1):
    if i <= mid:
        spaces = mid - i
        stars = 2 * i - 1
    else:
        spaces = i - mid
        stars = 2 * (n - i + 1) - 1
    print(" " * spaces + "*" * stars)

答案: 一个类似菱形的形状
解析: 通过计算每行的前导空格数和星号数,打印出菱形图案。

总结

本文全面介绍了Python中的循环结构,包括forwhile循环的基本用法,breakcontinue语句的功能及应用,嵌套循环的处理方法,以及如何跳出多层循环。通过读程序写结果的练习,可以加深对循环结构的理解和应用能力。

posted on 2025-12-23 22:00  陈诗棋  阅读(21)  评论(0)    收藏  举报