目录
循环语句可能包含以下四部分:
1)初始化语句:用于完成一些初始化工作,在循环开始之前执行;
2)循环条件:bool型表达式,判断是否执行循环体;
3)循环体:循环执行的代码块;
4)迭代语句:控制循环条件中的变量;
1. while循环
1)语句格式
初始化语句
while 循环条件:
循环语句块
迭代语句(改变循环条件变量控制循环结束)
2. for-in循环
for-in循环专门用于遍历范围、列表、元组和字典等可迭代对象包含的元素;
什么是可迭代对象呢?就是对象中包含了一个 _iter_ 方法,且该方法的返回值对象具有next()方法;
1)语句格式为:
for 变量 in 字符串|范围|集合等:
循环语句块
for-in循环中的变量的值是在每次循环开始前自动被赋值,因此程序中不应该在循环体内对该变量赋值;
2)for-in循环遍历列表和元组
列表和元组有几个元素,循环体就执行几次,且循环变量依次被赋值为各元素的值;
list_1 = list(range(10, 15))
# [10, 11, 12, 13, 14]
for i in list_1:
print(i)
# 10
# 11
# 12
# 13
# 14
3)for-in循环遍历字典
使用for-in循环遍历字典也是通过遍历列表来实现的;
dict_1 = {"语文": 90, "数学": 80, "英语": 70, "物理": 60}
for key, value in dict_1.items():
print(key, value)
# 语文 90
# 数学 80
# 英语 70
# 物理 60
for key in dict_1.keys():
print(key, end=" ")
print( )
# 语文 数学 英语 物理
for value in dict_1.values():
print(value, end=" ")
# 90 80 70 60
注:获取所有key-value对时,需要两个循环变量分别获取key和value;
4)for表达式
用于利用其他区间、元组、列表等可迭代对象创建新的列表;
语法格式:
[表达式 for 循环计数器 in 可迭代对象]
循环计数器依次被赋值为可迭代对象中的元素,可迭代对象有多少个元素,for前面的表达式就运行几次;
如果在可迭代对象后面加入if条件,表达式只有在if条件判断正确的时候才执行;
list_1 = list(range(1, 10))
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
list_new = [2*i for i in list_1]
print(list_new)
# [2, 4, 6, 8, 10, 12, 14, 16, 18]
list_new_2 = [2*i for i in list_1 if i % 2 == 0]
print(list_new_2)
# [4, 8, 12, 16]
for表达式也可以循环嵌套:
list_1 = [(i, j) for i in range(0, 5) for j in range(0, 5)]
print(list_1)
# [(0, 0), (0, 1), (0, 2), (0, 3), (0, 4),
# (1, 0), (1, 1), (1, 2), (1, 3), (1, 4),
# (2, 0), (2, 1), (2, 2), (2, 3), (2, 4),
# (3, 0), (3, 1), (3, 2), (3, 3), (3, 4),
# (4, 0), (4, 1), (4, 2), (4, 3), (4, 4)]
3. 控制循环结构
1)使用 break 结束循环
完全结束一个循环,跳出循环体;
for i in range(1, 10):
print(i, end=" ")
if i==5:
break
# 1 2 3 4 5
2)使用 continue 结束本次循环
for i in range(1, 10):
if i == 5:
continue
print(i, end=" ")
# 1 2 3 4 6 7 8 9 没有输出5