欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > Python星球日记 - 第5天:循环结构

Python星球日记 - 第5天:循环结构

2025/5/16 9:53:26 来源:https://blog.csdn.net/qq_51646682/article/details/147024486  浏览:    关键词:Python星球日记 - 第5天:循环结构

🌟引言

上一篇:Python星球日记 - 第4天:控制结构(条件语句)

名人说:路漫漫其修远兮,吾将上下而求索。 —— 屈原《离骚》
创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)

目录

    • 一、循环结构概述
    • 二、for循环
      • 1. for循环基本语法
      • 2. for循环示例
    • 三、while循环
      • 1. while循环基本语法
      • 2. while循环示例
    • 四、循环控制关键字
      • 1. break语句
      • 2. continue语句
      • 3. 对比图
    • 五、嵌套循环
      • 1. 嵌套循环基本结构
      • 2. 嵌套循环示例
    • 六、实战练习:打印九九乘法表
      • 1. 九九乘法表实现
      • 2. 代码解析
      • 3. 优化版本
    • 七、循环使用的最佳实践
    • 八、总结

更多硬核知识,请关注我、订阅专栏《 Python星球日记》,内容持续更新中…
专栏介绍: Python星球日记专栏介绍(持续更新ing)

欢迎来到Python星球的第5天!今天我们将深入探索Python中的循环结构

这是编程中最强大的工具之一,让我们能够高效地重复执行特定任务。无论是数据处理、游戏开发还是网络爬虫,循环结构都是不可或缺的基础知识。让我们开始今天的探索吧!

一、循环结构概述

在编程的世界中,循环是一种控制流语句,它允许代码被反复执行,直到满足特定条件为止。循环结构是编程中最基本也是最强大的控制结构之一,让我们能够用简洁的代码实现复杂的重复性任务。

Python主要提供了两种循环结构

  • for循环:主要用于遍历序列(如列表、元组、字符串等)
  • while循环:根据条件判断是否继续执行循环体

在这里插入图片描述

二、for循环

1. for循环基本语法

for循环用于遍历任何可迭代对象(如列表、元组、字符串等)中的元素。它的基本语法如下:

for 变量 in 可迭代对象:# 循环体(要重复执行的代码)

每次循环迭代时,可迭代对象中的下一个元素会被赋值给变量,然后执行循环体中的代码。

在这里插入图片描述

2. for循环示例

让我们通过一些实例来理解for循环的应用:

示例1:遍历列表

# 遍历水果列表
fruits = ["苹果", "香蕉", "橙子", "葡萄"]
for fruit in fruits:print(f"我喜欢吃{fruit}")

输出结果:

我喜欢吃苹果
我喜欢吃香蕉
我喜欢吃橙子
我喜欢吃葡萄

示例2:遍历字符串

# 遍历字符串中的每个字符
message = "Python"
for char in message:print(char)

输出结果:

P
y
t
h
o
n

示例3:使用range()函数

range()函数是Python中非常实用的内置函数,它能生成一个数字序列,常与for循环一起使用:

# 生成0到4的数字序列
for i in range(5):print(i)

输出结果:

0
1
2
3
4

range()函数的三种常用形式

  • range(stop): 生成从0到stop-1的数字
  • range(start, stop): 生成从start到stop-1的数字
  • range(start, stop, step): 生成从start到stop-1的数字,步长为step
# 使用range()的不同形式
for i in range(1, 6):      # 从1到5print(i, end=" ")
print()for i in range(2, 11, 2):  # 从2到10,步长为2print(i, end=" ")

输出结果:

1 2 3 4 5 
2 4 6 8 10 

三、while循环

1. while循环基本语法

while循环根据条件判断是否继续执行循环体,它的基本语法如下:

while 条件表达式:# 循环体(要重复执行的代码)

只要条件表达式的结果为True,循环体就会一直执行。因此,我们必须确保条件在某个时刻会变成False,否则会导致无限循环

在这里插入图片描述

2. while循环示例

示例1:基本while循环

# 打印1到5的数字
count = 1
while count <= 5:print(count)count += 1  # 别忘了更新条件变量!

输出结果:

1
2
3
4
5

示例2:计算累加和

# 计算1到100的累加和
total = 0
num = 1
while num <= 100:total += numnum += 1
print(f"1到100的累加和是: {total}")

输出结果:

1到100的累加和是: 5050

示例3:用户输入验证

# 验证用户输入的密码
correct_password = "python123"
password = ""while password != correct_password:password = input("请输入密码: ")if password != correct_password:print("密码错误,请重试!")print("密码正确,欢迎使用!")

四、循环控制关键字

Python提供了两个关键字来控制循环的执行流程:breakcontinue

在这里插入图片描述

1. break语句

break语句用于完全结束循环,不再执行循环体内break之后的语句,也不再进行后续的循环迭代。

示例:使用break提前结束循环

# 在列表中查找特定元素
numbers = [10, 20, 30, 40, 50, 60]
target = 40for num in numbers:if num == target:print(f"找到目标数字: {target}")break  # 找到目标后立即结束循环print(f"检查数字: {num}")print("循环结束")

输出结果:

检查数字: 10
检查数字: 20
检查数字: 30
找到目标数字: 40
循环结束

2. continue语句

continue语句用于跳过当前迭代的剩余部分,直接进入下一次迭代。它不会结束整个循环,而只是跳过当前这一次。

示例:使用continue跳过特定条件

# 打印1到10中除了5之外的所有数字
for i in range(1, 11):if i == 5:continue  # 跳过5print(i, end=" ")

输出结果:

1 2 3 4 6 7 8 9 10 

3. 对比图

在这里插入图片描述

五、嵌套循环

嵌套循环是指在一个循环内部包含另一个循环。当外层循环执行一次时,内层循环会完整地执行所有迭代。嵌套循环在处理多维数据结构(如二维列表)时非常有用

在这里插入图片描述

1. 嵌套循环基本结构

for 外层变量 in 外层可迭代对象:# 外层循环体for 内层变量 in 内层可迭代对象:# 内层循环体

2. 嵌套循环示例

示例1:打印矩阵

# 打印3x3矩阵
for i in range(3):  # 行for j in range(3):  # 列print(f"({i},{j})", end=" ")print()  # 换行

输出结果:

(0,0) (0,1) (0,2) 
(1,0) (1,1) (1,2) 
(2,0) (2,1) (2,2) 

示例2:遍历二维列表

# 遍历二维列表(矩阵)
matrix = [[1, 2, 3],[4, 5, 6],[7, 8, 9]
]for row in matrix:  # 遍历每一行for element in row:  # 遍历行中的每个元素print(element, end=" ")print()  # 行结束后换行

输出结果:

1 2 3 
4 5 6 
7 8 9 

六、实战练习:打印九九乘法表

九九乘法表是一个经典的嵌套循环应用案例。在这个练习中,我们将使用嵌套的for循环来打印出完整的九九乘法表。

1. 九九乘法表实现

# 打印九九乘法表
print("九九乘法表:")
for i in range(1, 10):  # 第一个因数:1到9for j in range(1, i + 1):  # 第二个因数:1到i# 使用格式化输出,保持对齐print(f"{j} × {i} = {i*j}", end="\t")print()  # 每行结束后换行

输出结果:

九九乘法表:
1 × 1 = 1	
1 × 2 = 2	2 × 2 = 4	
1 × 3 = 3	2 × 3 = 6	3 × 3 = 9	
1 × 4 = 4	2 × 4 = 8	3 × 4 = 12	4 × 4 = 16	
1 × 5 = 5	2 × 5 = 10	3 × 5 = 15	4 × 5 = 20	5 × 5 = 25	
1 × 6 = 6	2 × 6 = 12	3 × 6 = 18	4 × 6 = 24	5 × 6 = 30	6 × 6 = 36	
1 × 7 = 7	2 × 7 = 14	3 × 7 = 21	4 × 7 = 28	5 × 7 = 35	6 × 7 = 42	7 × 7 = 49	
1 × 8 = 8	2 × 8 = 16	3 × 8 = 24	4 × 8 = 32	5 × 8 = 40	6 × 8 = 48	7 × 8 = 56	8 × 8 = 64	
1 × 9 = 9	2 × 9 = 18	3 × 9 = 27	4 × 9 = 36	5 × 9 = 45	6 × 9 = 54	7 × 9 = 63	8 × 9 = 72	9 × 9 = 81	

2. 代码解析

  1. 外层循环 for i in range(1, 10) 控制乘法表的行数,从1到9。
  2. 内层循环 for j in range(1, i + 1) 控制每行中的列数,从1到当前的行号i。
    • 这样可以实现九九乘法表的"下三角"形状。
  3. 在内层循环中,我们打印出 j × i = i*j 的结果,并使用 end="\t" 参数使输出保持在同一行,用制表符分隔。
  4. 每完成一行后,使用 print() 换行,开始下一行的打印。

3. 优化版本

我们还可以优化一下输出格式,使九九乘法表看起来更整齐:

# 优化版九九乘法表
print("优化版九九乘法表:")
for i in range(1, 10):for j in range(1, i + 1):# 更紧凑的输出格式print(f"{j}×{i}={i*j:<2}", end=" ")print()

输出结果:

优化版九九乘法表:
1×1=1  
1×2=2  2×2=4  
1×3=3  2×3=6  3×3=9  
1×4=4  2×4=8  3×4=12 4×4=16 
1×5=5  2×5=10 3×5=15 4×5=20 5×5=25 
1×6=6  2×6=12 3×6=18 4×6=24 5×6=30 6×6=36 
1×7=7  2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49 
1×8=8  2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64 
1×9=9  2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81 

七、循环使用的最佳实践

  1. 选择正确的循环类型

    • 当你知道需要循环的次数时,使用 for 循环
    • 当循环需要基于条件判断时,使用 while 循环
  2. 避免无限循环

    • while 循环中,确保循环条件最终会变为 False
    • 添加适当的终止条件或者 break 语句
  3. 合理使用循环控制语句

    • break:当找到所需结果时提前结束循环
    • continue:跳过不需要处理的情况
  4. 嵌套循环要谨慎

    • 嵌套循环的时间复杂度是相乘的关系,过多的嵌套会导致性能问题
    • 尽量将嵌套层数控制在3层以内
  5. 考虑使用列表推导式

    • 对于简单的循环操作,列表推导式通常更高效且简洁
    # 普通for循环
    squares = []
    for i in range(1, 11):squares.append(i ** 2)# 列表推导式
    squares = [i ** 2 for i in range(1, 11)]
    

八、总结

在本篇文章中,我们详细探讨了Python中的循环结构

  1. for循环:适用于遍历序列中的元素,如列表、字符串等。
  2. while循环:基于条件执行,适合不确定迭代次数的场景。
  3. 循环控制关键字break用于提前结束循环,continue用于跳过当前迭代。
  4. 嵌套循环:在一个循环内部包含另一个循环,适用于处理多维数据。
  5. 九九乘法表:作为嵌套循环的经典应用案例。

掌握循环结构是成为Python高手的重要一步。通过循环,我们可以用少量代码实现复杂的重复性任务,大大提高编程效率。

问题与讨论

  1. 你能想到循环结构在日常编程中的哪些应用场景?
  2. 在什么情况下应该选择for循环,什么情况下应该选择while循环?
  3. 你能否修改九九乘法表的代码,使其打印完整的表格(包括上三角部分)?

欢迎在评论区分享你的想法和代码实现!

希望这篇文章能帮助你更好地理解和应用Python中的循环结构。下一篇文章,我们将探索Python中的列表与元组,敬请期待!

创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)
如果你对今天的内容有任何问题,或者想分享你的学习心得,欢迎在评论区留言讨论!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词