1. while 循环:基于<条件判断>重复执行,满足条件就继续,不满足就停止。
while 条件表达式:
# 缩进的代码块:条件为True时执行的内容
循环体代码
# 循环结束后执行的代码
2. for 循环:基于<可迭代对象遍历>重复执行,遍历完所有元素就停止(比如列表、字符串、字典等)。
for 变量名 in 可迭代对象:
# 缩进的代码块:遍历每个元素时执行的内容
循环体代码
# 循环结束后执行的代码
-
可迭代对象:列表、字符串、元组、字典、range () 等。
-
每次循环,变量会依次取可迭代对象中的一个元素。
控制循环在有限次数内执行,有三个要素:
- 循环控制因子(某个变量),初值
- 循环控制条件(基于因子做判断),条件
- 循环因子更新(修改因子的值),增量
3.range
获得一个简单的数字序列(可迭代类型的一种)
- range(num):获得一个从0开始,到num结束的数字序列(不包含num本身)
- range(num1,num2):获得一个从num1开始,到num2结束的数字序列(不包含num2本身)
- range(num1,num2,step):获得一个从num1开始,到num2结束的数字序列(不含num2本身,数字之间的步长,以step为准,默认为1)
4.break和continue
- continue:中断本次循环直接进入下一次循环
- break:直接结束循环
例子:
break:
for i in range(5):
print(f"今天是努力干饭的第{i+1}天,开始干饭!")
count = 0
for j in range(5):
print(f"这是你第{i+1}天吃的第{j+1}顿饭")
count += 1
flag = int(input("你吃饱了吗?(0没吃饱/1吃饱)"))
if flag == 1:
break #直接结束循环,结束的是内层循环,外层循环继续执行
print(f"今天是第{i+1}天,我一共吃了{count}顿饭")
continue:
for i in range(5):
print(f"今天是努力干饭的第{i+1}天,开始干饭!")
count = 0
for j in range(5):
flag = int(input(f"这是你第{i+1}天吃的第{j+1}顿饭,你想吃吗?(0不想/1想):"))
if flag == 0:
continue #跳出本次循环,内层循环仍继续,本次循环不再执行
count += 1
print(f"今天是第{i+1}天,我一共吃了{count}顿饭")
5.实战案例:打印九九乘法表
for循环:
for i in range(1,10):
for j in range(1,i+1):
print(j,"*",i,"=",i*j,end="\t")
print()
while循环:
# while i<=9:
# j=1
# while j<=i:
# print(f"{j}*{i}={i*j}",end="\t")
# j+=1
# print()
# i+=1
6.总结
-
while 循环:「条件驱动」,适合循环次数不确定的场景,需注意更新条件避免无限循环,支持 break/continue/else。
-
for 循环:「迭代驱动」,适合遍历可迭代对象或固定次数循环,
range()是其常用工具,同样支持 break/continue/else。 -
核心选择原则:知道循环次数 / 要遍历元素 → 用 for;不知道次数 / 按条件循环 → 用 while。