Python(十二) 中的循环语句
一、什么是循环语句
循环语句,也叫重复执行语句。它的作用是让程序在满足一定条件时,反复执行同一段代码。
通俗地说,循环语句就是让程序“重复做某件事”。
生活中的例子:
每天早上:
起床
洗漱
吃早饭
去上学或上班
这些事情每天都会重复发生。
在程序中,如果我们想重复输出 5 次“你好”,可以这样写:
for i in range(5):
print("你好")
如果不用循环,就要写成这样:
print("你好")
print("你好")
print("你好")
print("你好")
print("你好")
很明显,使用循环可以让代码更简洁,也更容易修改。
Python 中常见的循环语句主要有两种:
for 循环
while 循环
二、for 循环
for 循环通常用于“明确知道要循环多少次”或者“需要依次取出一组数据”的情况。
1. for 循环的基本格式
语法格式:
for 变量 in 可迭代对象:
循环体代码
可以简单理解为:
从一组数据中,一个一个取出数据。
每取出一个,就执行一次循环体代码。
示例:
for name in ["小明", "小红", "小刚"]:
print(name)
输出结果:
小明
小红
小刚
这里的执行过程是:
第一次循环:name 是 "小明"
第二次循环:name 是 "小红"
第三次循环:name 是 "小刚"
2. 使用 range() 控制循环次数
range() 经常和 for 循环一起使用,用来生成一组数字。
示例:输出 0 到 4。
for i in range(5):
print(i)
输出结果:
0
1
2
3
4
注意:range(5) 生成的是 0、1、2、3、4,不包括 5。
3. range() 的常见写法
写法一:range(结束值)
for i in range(5):
print(i)
表示从 0 开始,到 5 之前结束。
结果是:
0 1 2 3 4
写法二:range(开始值, 结束值)
for i in range(1, 6):
print(i)
表示从 1 开始,到 6 之前结束。
结果是:
1 2 3 4 5
写法三:range(开始值, 结束值, 步长)
for i in range(1, 10, 2):
print(i)
表示从 1 开始,每次增加 2,到 10 之前结束。
结果是:
1 3 5 7 9
也可以倒着数:
for i in range(5, 0, -1):
print(i)
输出结果:
5
4
3
2
1
三、while 循环
while 循环通常用于“不确定要循环多少次,但知道循环条件”的情况。
1. while 循环的基本格式
语法格式:
while 条件:
循环体代码
可以简单理解为:
只要条件成立,就一直执行循环体。
条件不成立时,循环结束。
示例:输出 1 到 5。
i = 1
while i <= 5:
print(i)
i = i + 1
输出结果:
1
2
3
4
5
执行过程:
i = 1,满足 i <= 5,输出 1,然后 i 变成 2
i = 2,满足 i <= 5,输出 2,然后 i 变成 3
i = 3,满足 i <= 5,输出 3,然后 i 变成 4
i = 4,满足 i <= 5,输出 4,然后 i 变成 5
i = 5,满足 i <= 5,输出 5,然后 i 变成 6
i = 6,不满足 i <= 5,循环结束
2. while 循环的三个关键点
使用 while 循环时,通常要注意三个部分:
1. 初始值
2. 循环条件
3. 改变变量的代码
例如:
i = 1 # 初始值
while i <= 5: # 循环条件
print(i)
i = i + 1 # 改变变量
如果忘记改变变量,循环可能会一直执行下去。
四、for 循环和 while 循环的区别
for 循环和 while 循环都可以重复执行代码,但使用场景不太一样。
for 循环:
通常用于循环次数比较明确的情况。
while 循环:
通常用于循环次数不一定明确,但循环条件明确的情况。
示例:输出 1 到 5。
使用 for 循环:
for i in range(1, 6):
print(i)
使用 while 循环:
i = 1
while i <= 5:
print(i)
i = i + 1
这两个程序的输出结果一样。
教学时可以这样讲:
如果你知道要做 5 次,常用 for。
如果你要一直做到某个条件不满足,常用 while。
五、循环中的 break
break 的作用是立刻结束整个循环。
也就是说,只要程序执行到 break,当前循环就会马上停止。
示例:找到数字 3 后停止循环。
for i in range(1, 6):
if i == 3:
break
print(i)
输出结果:
1
2
执行过程:
i 是 1,输出 1
i 是 2,输出 2
i 是 3,遇到 break,循环结束
再看一个生活化例子:
while True:
password = input("请输入密码:")
if password == "123456":
print("登录成功")
break
else:
print("密码错误,请重新输入")
这里的 while True 表示一直循环。
当密码正确时,执行 break,循环结束。
六、循环中的 continue
continue 的作用是跳过本次循环剩下的代码,直接进入下一次循环。
示例:输出 1 到 5,但跳过 3。
for i in range(1, 6):
if i == 3:
continue
print(i)
输出结果:
1
2
4
5
执行过程:
i 是 1,输出 1
i 是 2,输出 2
i 是 3,遇到 continue,跳过 print(i)
i 是 4,输出 4
i 是 5,输出 5
简单记忆:
break:直接结束循环
continue:跳过本次,继续下一次
七、循环中的 else
Python 的循环还可以和 else 搭配使用。
循环中的 else 表示:当循环正常结束时,执行 else 中的代码。
示例:
for i in range(3):
print(i)
else:
print("循环正常结束")
输出结果:
0
1
2
循环正常结束
如果循环被 break 提前结束,else 不会执行。
示例:
for i in range(5):
if i == 3:
break
print(i)
else:
print("循环正常结束")
输出结果:
0
1
2
这里没有输出“循环正常结束”,因为循环遇到了 break。
教学时可以提醒学生:循环中的 else 不常用,初学阶段了解即可。
八、嵌套循环
循环里面还可以继续写循环,这叫嵌套循环。
示例:打印简单的乘法表。
for i in range(1, 4):
for j in range(1, 4):
print(i, "*", j, "=", i * j)
输出结果:
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
执行过程可以这样理解:
外层循环每执行一次,内层循环就完整执行一遍。
再看一个更直观的例子:打印星号。
for i in range(3):
for j in range(5):
print("*", end="")
print()
输出结果:
*****
*****
*****
这里:
外层循环控制行数。
内层循环控制每一行输出几个星号。
九、循环常见应用
1. 求 1 到 100 的和
total = 0
for i in range(1, 101):
total = total + i
print(total)
讲解:
total 用来保存总和。
每循环一次,就把当前的 i 加到 total 中。
2. 统计列表中的偶数个数
numbers = [1, 2, 3, 4, 5, 6]
count = 0
for num in numbers:
if num % 2 == 0:
count = count + 1
print("偶数个数是:", count)
讲解:
% 是取余运算符。
如果一个数除以 2 的余数是 0,说明它是偶数。
3. 用户输入数字,直到输入 0 结束
while True:
num = int(input("请输入一个数字,输入 0 结束:"))
if num == 0:
print("输入结束")
break
print("你输入的是:", num)
讲解:
while True 表示一直循环。
当用户输入 0 时,使用 break 结束循环。
十、常见注意事项
1. 循环语句后面一定要加冒号
错误写法:
for i in range(5)
print(i)
正确写法:
for i in range(5):
print(i)
while 也是一样:
i = 1
while i <= 5:
print(i)
i = i + 1
2. 循环体必须正确缩进
Python 使用缩进表示代码块。
正确写法:
for i in range(3):
print("循环中")
print(i)
错误写法:
for i in range(3):
print("循环中")
通常建议使用 4 个空格作为一级缩进。
3. 小心死循环
死循环是指循环一直执行,无法正常结束。
错误示例:
i = 1
while i <= 5:
print(i)
这段代码中,i 一直是 1,条件 i <= 5 永远成立,所以循环不会停止。
正确写法:
i = 1
while i <= 5:
print(i)
i = i + 1
使用 while 循环时,一定要注意让条件有机会变成 False。
4. range() 的结束值不包含在内
for i in range(1, 5):
print(i)
输出结果是:
1
2
3
4
不会输出 5。
可以这样记:
range(1, 5) 表示从 1 到 5 之前。
5. break 和 continue 不要混淆
break 是结束整个循环。
continue 是跳过本次循环,继续下一次循环。
示例:
for i in range(1, 6):
if i == 3:
break
print(i)
输出:
1
2
示例:
for i in range(1, 6):
if i == 3:
continue
print(i)
输出:
1
2
4
5
6. 不要在遍历列表时随意修改列表
初学者经常会一边遍历列表,一边删除列表中的元素,这可能导致结果不符合预期。
不推荐:
numbers = [1, 2, 3, 4, 5, 6]
for num in numbers:
if num % 2 == 0:
numbers.remove(num)
更清楚的写法是创建一个新列表:
numbers = [1, 2, 3, 4, 5, 6]
new_numbers = []
for num in numbers:
if num % 2 != 0:
new_numbers.append(num)
print(new_numbers)
7. 循环层数不要太多
嵌套循环虽然可以使用,但层数太多会让代码难以理解。
一般来说,初学阶段遇到两层循环已经比较常见,三层以上就要格外小心。
可以提醒学生:
代码不仅要能运行,还要容易看懂。
8. 注意循环变量的含义
循环变量最好起有意义的名字。
不太清楚的写法:
for x in students:
print(x)
更清楚的写法:
for student in students:
print(student)
变量名清楚,代码就更容易理解。
十一、课堂练习
练习 1:输出 1 到 10
要求:使用 for 循环输出 1 到 10。
参考代码:
for i in range(1, 11):
print(i)
练习 2:输出 1 到 10 中的偶数
参考代码:
for i in range(1, 11):
if i % 2 == 0:
print(i)
练习 3:计算 1 到 100 的和
参考代码:
total = 0
for i in range(1, 101):
total = total + i
print("1 到 100 的和是:", total)
练习 4:猜数字游戏
参考代码:
answer = 7
while True:
guess = int(input("请猜一个数字:"))
if guess == answer:
print("猜对了")
break
else:
print("猜错了,请继续")
这个练习适合讲解:
while True
input 输入
if 判断
break 结束循环
十二、教学建议
讲解循环语句时,可以按照下面的顺序:
1. 先用生活中的重复事情引出循环
2. 再讲 for 循环,重点讲 range()
3. 然后讲 while 循环,重点讲循环条件
4. 接着讲 break 和 continue
5. 最后通过求和、计数、猜数字等例子综合练习
可以引导学生思考:
如果要输出 100 次“你好”,难道真的要写 100 行 print 吗?
如果要一直输入密码,直到密码正确为止,应该怎么写?
如果要统计一组数字里有多少个偶数,应该怎么做?
这些问题能帮助学生理解循环语句的实际用途。
十三、总结
Python 循环语句的核心作用是让程序重复执行某段代码。
可以这样记:
for 循环:
常用于次数明确,或者遍历一组数据。
while 循环:
常用于次数不确定,但条件明确。
循环中常用的控制语句:
break:
结束整个循环。
continue:
跳过本次循环,继续下一次循环。
学习循环语句时,最重要的几个点是:
1. 循环语句后面要加冒号
2. 循环体必须正确缩进
3. while 循环要避免死循环
4. range() 的结束值不包含在内
5. break 和 continue 的作用不同
一句话总结:
循环语句让程序能够重复做事,是编写自动化程序和处理大量数据的基础。