【0011】Python流程控制结构-循环结构详解

如果你觉得我的文章写的不错,请关注我哟,请点赞、评论,收藏此文章,谢谢!

本文内容体系结构如下:
在这里插入图片描述

欢迎踏入Python循环结构的学习之旅!本文将引领你掌握Python中至关重要的循环概念,包括forwhile循环和嵌套循环,以及breakcontinue等控制语句。通过实例演练,你将学会如何高效处理数据和执行重复任务。无论你是编程新手,还是寻求技能提升的开发者,这份精心准备的文章都将是你学习路上的得力助手。让我们一同开启循环结构的探索之旅!

一、循环概念

1.1 什么是循环?

循环是编程中的一种基本控制结构,它允许程序重复执行一段代码多次。通过循环,我们可以处理重复性的任务,如遍历列表、计算累加和、重复执行某项操作直到满足特定条件等。

1.2 循环的重要性

  • 提高代码的可读性和维护性:避免重复编写相同的代码块。
  • 处理集合数据:方便遍历列表、元组、字典等数据结构。
  • 实现复杂逻辑:如游戏循环、数据处理循环等。

二、循环分类

Python提供了两种主要的循环结构:for循环和while循环。注意:Python中没有do-while循环。

2.1 for循环

for循环用于遍历一个序列(如字符串、列表、元组)或其他可迭代对象,执行循环体多次。它适用于确定循环次数的情况。

(1)语法结构
for 变量 in 可迭代对象:
    循环体
(2)执行规律
  1. 从可迭代对象中按照顺序,依次取出可迭代对象中的元素
  2. 将取出来的元素存储在变量中
  3. 通过循环体对变量中的元素进行操作

注意:for循环知道循环的次数,因为它基于一个可迭代对象的长度。

流程图:
在这里插入图片描述

(3)演示示例
# 遍历字符串:将字符串中的每个字符依次取出,进行打印输出
str = "hello"
for letter in str:
    print(letter,end=" ")

print("\n-----------------------------------------")

# 遍历列表:将列表中的元素按照索引顺序取出,进行打印输出
list01 = ['apple', 'banana', 'cherry']
for fruit in list01:
    print(fruit,end=" ")

print("\n-----------------------------------------")

# 遍历元组,将元组中的元素按照索引顺序取出,进行打印输出
tuple01 = (10, 20, 30)
for num in tuple01:
    print(num,end=" ")

print("\n-----------------------------------------")

# 遍历range()函数产生的内容
# range(start, stop[, step])用于生成一个从start到`stop-1`的整数序列,`step`是可选的步长参数。
for i in range(1, 5):
    print(i,end=" ")  # 输出:1 2 3 4
(4)执行结果

在这里插入图片描述

2.2 while循环

while循环在给定的条件为True时,重复执行循环体。它适用于不确定循环次数的情况。

(1)语法结构
初始值代码
while 条件表达式:
    循环操作代码块
    迭代代码
(2)执行规律
  1. 执行1次初始值代码
  2. 判断条件表达式的结果
    • 如果条件表达式为True,执行循环操作代码块和迭代代码,然后接着去判断条件表达式结果,根据条件表达式结果决定是否继续执行循环操作代码块和迭代代码如果为False
    • 如果条件表达式为False,结束循环结构,继续往下执行循环结构后面的代码

注意:

while循环在条件为True时一直执行,直到条件变为False

需要小心避免无限循环,通常需要在循环体内部设置某种终止条件。

流程图
在这里插入图片描述

(3)演示示例
# 使用while循环输出1-20之间的整数
num = 1 # 初始值
while num <= 20: # 循环条件
    print(num,end=" ") # 循环操作
    num+=1 # 迭代代码

print("\n--------------------------------------------------------")

# 使用while循环输出1-20之间的偶数
num = 1 # 初始值
while num <= 20: # 循环条件
    if num%2==0:
        print(num,end=" ") # if结构为循环操作
    num+=1 # 迭代代码

print("\n--------------------------------------------------------")

# 使用while循环求1-20之间所有整数之和
# 定义一个变量用来存储1-20之间所有整数之和
sum = 0
num = 1 # 初始值
while num <= 20: # 循环条件
    sum+=num # 循环操作
    num+=1 # 迭代代码
print("1-20之间所有整数之和:",sum)
(4)执行结果

在这里插入图片描述

三、嵌套循环

3.1 什么是嵌套循环

嵌套循环是指在一个循环内部再嵌套一个或多个循环。它常用于处理多维数据结构,如二维列表(矩阵),或实现更复杂的逻辑。理论上,循环嵌套可以任意层次的嵌套,但实际开发中,循环嵌套太深,代码可读性不好,所以循环嵌套一般不超过三层,使用最多的就是双重循环。

循环嵌套,可以自己嵌套自己,例如while循环中嵌套while循环、for循环嵌套for循环。也可以相互嵌套,例如while循环中嵌套for循环、for循环中嵌套while循环。

本文主要讲解while循环嵌套while循环和for循环嵌套for循环。

3.2 嵌套循环执行规律

  • 外层循环变量变化1次,内层循环变量变化1遍(因为内层循环整个结构是外层循环的循环操作代码)
  • 外层循环变量控制行数,内层循环变量控制每一行的列数

流程图:
在这里插入图片描述

3.3 注意事项与常见错误

  • 缩进:Python使用缩进来定义代码块,嵌套循环的缩进非常重要,必须保持一致。
  • 变量命名:避免在内外层循环中使用相同的变量名,以免混淆。
  • 性能:嵌套循环的时间复杂度较高,使用时要注意性能问题,尽量避免不必要的循环。

3.4 嵌套循环的实例

(1)遍历二维列表
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
# 使用嵌套for循环实现遍历二维列表
for row in matrix:
    for num in row:
        print(num, end=' ')
    print()  # 换行

print("--------------------------------------------")

# 使用嵌套while循环实现遍历二维列表
outIndex = 0 # 外层循环变量
while outIndex<len(matrix):
    inIndex=0 # 内层循环变量
    while inIndex<len(matrix[outIndex]):
        print(matrix[outIndex][inIndex],end=' ') # 内层循环操作代码
        inIndex+=1 # 内层循环变量迭代
    print() # 换行
    outIndex+=1 # 外层循环变量迭代

代码执行结果如下图所示:
在这里插入图片描述

(2)打印乘法口诀表
# 使用嵌套for循环输出九九乘法表
for i in range(1, 10): # 变量i为外层循环变量,可以控制九九乘法表的行数
    for j in range(1, i + 1): # 变量j为内层循环变量,可以控制九九乘法表每一行的列数
        print(f"{j}*{i}={i*j}", end='\t') # 每一行的每一个乘式子
    print()  # 换行

print("-----------------------------------------------------------------------")

# 使用嵌套while循环输出九九乘法表
i = 1 # 变量i为外层循环变量,可以控制九九乘法表的行数
while i <= 9:
    j = 1 # 变量j为内层循环变量,可以控制九九乘法表每一行的列数
    while j <= i:
        print(f"{j}*{i}={i * j}", end='\t')  # 每一行的每一个乘式子
        j += 1 # 内层变量迭代
    print()  # 换行
    i += 1 # 外层变量迭代

代码执行结果如下图所示:
在这里插入图片描述

四、循环控制语句

在编程中,breakcontinue 是两个非常重要的控制流语句,它们可以帮助我们更灵活地控制循环的执行。

4.1 break 语句

4.1.1 什么是 break

break 语句用于立即终止它所在的最内层循环,跳出循环体,执行循环之后的代码。

流程图
在这里插入图片描述

4.1.2 使用场景
  • 当你需要在满足某个条件时立即结束循环。
  • 避免不必要的迭代,提高程序效率。
4.1.3 代码示例
(1)break在单层循环中使用
for i in range(1, 11):
    if i == 5:
        break  # 当 i 等于 5 时,终止循环
    print(i)

输出结果
在这里插入图片描述

在这个例子中,当 i 等于 5 时,break 语句终止了 for 循环,因此 5 之后的数字没有被打印出来。

(2)break在双重循环中使用
for i in range(1, 6):
    print(i)
    for j in range(10,21):
        if j == 15:
            break # 当 j 等于 15 时,终止里面for循环后续所有操作
        print(j,end="\t")
    print() # 换行

在这个例子中,当j=15时,break语句终止了内层for循环,因此15之后的数字没有被打印出来,但外层循环会继续执行下去。

输出结果
在这里插入图片描述

4.2 continue 语句

4.2.1 什么是 continue

continue 语句用于跳过当前循环的剩余部分,并立即开始下一次循环。

流程图
在这里插入图片描述

4.2.2 使用场景
  • 当你需要在满足某个条件时跳过当前迭代,但继续执行下一次迭代。
  • 保持循环结构,但忽略某些特定的迭代。
4.2.3 代码示例
(1)continue在单层循环中使用
for i in range(1, 11):
    if i == 5:
        continue  # 如果 i 是5,跳过本次循环的剩余部分(输出5的操作),继续执行下一次循环操作
    print(i,end="\t")

在这个例子中,当 i5 时,continue 语句导致循环跳过 print(i) 语句,直接开始下一次迭代。因此,5不会被打印出来。

输出结果:
在这里插入图片描述

(2)continue在双重循环中使用
for i in range(1, 6):
    print(i)
    for j in range(10,21):
        if j == 15:
            continue # 当 j 等于 15 时,跳过本次循环的剩余部分(输出15的操作),继续执行下一次循环操作
        print(j,end="\t")
    print() # 换行

在这个例子中,当 j15 时,continue 语句导致循环跳过 print(j) 语句,直接开始下一次迭代。因此,15不会被打印出来。外层循环不受影响。

输出结果:
在这里插入图片描述

五、内容总结

本文详细介绍了Python中的循环结构,包括循环的概念、分类、使用、控制语句以及嵌套循环。

循环是编程中的基础,掌握它对于编写高效的程序至关重要。希望本文能够帮助你更好地理解和应用Python中的循环结构。接下来,不妨多做一些练习,加深对循环结构的理解和应用。编程是一门实践性很强的技能,多动手、多思考,你会进步得更快!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员张小厨

你的鼓励将是我持创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值