🌟引言:
上一篇: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提供了两个关键字来控制循环的执行流程:break
和 continue
。
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. 代码解析
- 外层循环
for i in range(1, 10)
控制乘法表的行数,从1到9。 - 内层循环
for j in range(1, i + 1)
控制每行中的列数,从1到当前的行号i。- 这样可以实现九九乘法表的"下三角"形状。
- 在内层循环中,我们打印出
j × i = i*j
的结果,并使用end="\t"
参数使输出保持在同一行,用制表符分隔。 - 每完成一行后,使用
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
七、循环使用的最佳实践
-
选择正确的循环类型:
- 当你知道需要循环的次数时,使用
for
循环 - 当循环需要基于条件判断时,使用
while
循环
- 当你知道需要循环的次数时,使用
-
避免无限循环:
- 在
while
循环中,确保循环条件最终会变为False
- 添加适当的终止条件或者
break
语句
- 在
-
合理使用循环控制语句:
break
:当找到所需结果时提前结束循环continue
:跳过不需要处理的情况
-
嵌套循环要谨慎:
- 嵌套循环的时间复杂度是相乘的关系,过多的嵌套会导致性能问题
- 尽量将嵌套层数控制在3层以内
-
考虑使用列表推导式:
- 对于简单的循环操作,列表推导式通常更高效且简洁
# 普通for循环 squares = [] for i in range(1, 11):squares.append(i ** 2)# 列表推导式 squares = [i ** 2 for i in range(1, 11)]
八、总结
在本篇文章中,我们详细探讨了Python中的循环结构:
for
循环:适用于遍历序列中的元素,如列表、字符串等。while
循环:基于条件执行,适合不确定迭代次数的场景。- 循环控制关键字:
break
用于提前结束循环,continue
用于跳过当前迭代。 - 嵌套循环:在一个循环内部包含另一个循环,适用于处理多维数据。
- 九九乘法表:作为嵌套循环的经典应用案例。
掌握循环结构是成为Python高手的重要一步。通过循环,我们可以用少量代码实现复杂的重复性任务,大大提高编程效率。
问题与讨论:
- 你能想到循环结构在日常编程中的哪些应用场景?
- 在什么情况下应该选择
for
循环,什么情况下应该选择while
循环? - 你能否修改九九乘法表的代码,使其打印完整的表格(包括上三角部分)?
欢迎在评论区分享你的想法和代码实现!
希望这篇文章能帮助你更好地理解和应用Python中的循环结构。下一篇文章,我们将探索Python中的列表与元组,敬请期待!
创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊)
如果你对今天的内容有任何问题,或者想分享你的学习心得,欢迎在评论区留言讨论!