在编程中,我们常常需要重复执行某段代码。例如,计算 1 到 100 的总和、打印列表中的所有元素等。如果手动编写每一次的执行代码,不仅繁琐,还容易出错。循环语句就是用来解决这种重复执行需求的工具,它可以让程序按照指定的条件重复执行某段代码块。
Python 中常用的循环语句有两种:for循环和while循环。
while循环的语法结构如下:
while 条件表达式:
循环体(需要重复执行的代码块)
while循环的执行过程是:先判断条件表达式的结果,如果为True,就执行循环体;执行完循环体后,再次判断条件表达式,直到条件表达式的结果为False时,跳出循环。
示例:打印 1 到 5 的数字
num = 1
while num <= 5:
print(num)
num += 1 # 相当于num = num + 1,每次循环让num增加1
运行结果:
1
2
3
4
5
解析:
初始时num = 1,满足num <= 5,执行循环体:打印1,num变为 2。
再次判断num <= 5(2 <= 5 为 True),执行循环体:打印2,num变为 3。
重复上述过程,直到num变为 6 时,num <= 5为 False,循环结束。
如果while循环的条件表达式始终为True,循环就会一直执行下去,形成无限循环,这会导致程序卡死。因此,在使用while循环时,必定要确保循环条件最终会变为False。
例如,下面的代码会形成无限循环(由于num的值始终是 1,num <= 5永远为 True):
num = 1
while num <= 5:
print(num)
# 忘记让num增加,导致循环无法结束
为了避免这种情况,要确保循环体中包含改变条件表达式的语句(如num += 1)。
for循环一般用于遍历序列(如字符串、列表等)或其他可迭代对象,其语法结构如下:
for 变量 in 可迭代对象:
循环体(每次迭代时执行的代码块)
“可迭代对象” 是指可以依次取出元素的对象,如字符串、列表、range 对象等。for循环会依次将可迭代对象中的元素赋值给变量,然后执行循环体,直到所有元素都被遍历完。
示例:遍历字符串中的每个字符
message = "Hello"
for char in message:
print(char)
运行结果:
H
e
l
l
o
range()函数可以生成一个整数序列,常用于for循环中指定循环次数。其语法为:range(start, stop, step),其中:
start:起始值(可选,默认从 0 开始)。
stop:结束值(必须指定,生成的序列不包含该值)。
step:步长(可选,默认是 1,即每次增加 1)。
示例 1:生成 0 到 4 的整数(不包含 5)
for i in range(5):
print(i)
运行结果:
0
1
2
3
4
示例 2:生成 2 到 8 的偶数(步长为 2)
for i in range(2, 9, 2): # 从2开始,到9结束(不包含9),每次增加2
print(i)
运行结果:
2
4
6
8
虽然我们还没正式学习列表,但可以先简单了解for循环遍历列表的用法(列表会在第 6 章详细讲解)。
示例:遍历列表中的元素
fruits = ["apple", "banana", "orange"]
for fruit in fruits:
print(fruit)
运行结果:
apple
banana
orange
在循环过程中,有时需要提前结束循环或跳过某次循环,这时可以使用break和continue语句。
break语句用于立即终止当前循环,跳出循环体。
示例:当遇到数字 5 时,终止循环
for num in range(1, 10):
if num == 5:
break # 当num等于5时,跳出循环
print(num)
运行结果:
1
2
3
4
continue语句用于跳过当前循环中的剩余代码,直接进入下一次循环。
示例:跳过数字 5,继续打印其他数字
for num in range(1, 10):
if num == 5:
continue # 当num等于5时,跳过本次循环的剩余代码
print(num)
运行结果:
1
2
3
4
6
7
8
9
循环可以嵌套使用,即一个循环内部包含另一个循环。这常用于处理更复杂的重复逻辑。
示例:打印 5 行 5 列的星号(*)
# 外层循环控制行数
for i in range(5):
# 内层循环控制每行的星号数量
for j in range(5):
print("*", end=" ") # end=" "表明打印后不换行,用空格分隔
print() # 每行结束后换行
运行结果:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
分别用while循环和for循环计算 1 到 100 的总和。
total = 0 # 用于存储总和
num = 1 # 从1开始累加
while num <= 100:
total += num # 相当于total = total + num
num += 1
print("1到100的总和是:", total) # 输出:1到100的总和是:5050
total = 0
for num in range(1, 101): # range(1, 101)生成1到100的整数
total += num
print("1到100的总和是:", total) # 输出:1到100的总和是:5050
本章我们学习了 Python 中的循环语句,包括while循环(适用于根据条件重复执行的场景)和for循环(适用于遍历可迭代对象的场景),还了解了range()函数的用法、循环控制语句(break和continue)以及循环嵌套。
循环语句是编程中处理重复任务的核心工具,它可以大大提高代码的效率和简洁性。在实际应用中,循环常常与前面学过的条件语句结合使用,实现更复杂的逻辑。
下一章,我们将学习 Python 中的列表,它是一种超级重大的数据结构,用于存储多个元素。