Python - for 循环
前言
- 在代码中有的时候我们需要程序不断地重复执行某一种操作
- 例如我们需要不停的判断某一列表中存放的数据是否大于 0,这个时候就需要使用循环控制语句
- 这里会讲解 for 循环
python 有两种循环语句,一个是 for、一个是 while
while 循环详解
https://www.cnblogs.com/poloyy/p/15087250.html
功能和语法
for 循环变量 in 序列: 代码块
序列
for 语句用于遍历序列中的元素,这里所讲的序列是广义的,可以是:
- 列表
- 元组
- 集合
- range 对象
遍历列表
# 遍历列表 lis = [1, 2, 3, 4] for i in lis: print(l) # 输出结果 1 2 3 4
遍历元组
# 遍历元组 tup = (1, 2, 3, 4) for i in tup: print(i) # 输出结果 1 2 3 4
遍历集合
# 遍历集合 se = {1, 2, 3, 4} for i in se: print(i) # 输出结果 1 2 3 4
遍历字典
# 遍历字典 dic = {1: 1, 2: 2, "3": 3, "4": 4} for i in dic: print(i) # 输出结果 1 2 3 4
遍历 range
# 遍历range for i in range(5): print(i) # 输出结果 0 1 2 3 4
range() 详解:https://www.cnblogs.com/poloyy/p/15086994.html
双重循环
# 双重循环 name = ['张三', "李四", "老汪"] score = [60, 70] for i in name: for j in score: print("名:", i, " 分:", j) # 输出结果 名: 张三 分: 60 名: 张三 分: 70 名: 李四 分: 60 名: 李四 分: 70 名: 老汪 分: 60 名: 老汪 分: 70
多个变量的栗子
# 多个变量 for a, b in [("张三", "80"), ("李四", "81"), ("老汪", "82")]: print(a, b) # 输出结果 张三 80 李四 81 老汪 82
break、continue 详解
https://www.cnblogs.com/poloyy/p/15087598.html
结合 continue + if 的栗子
# continue + if list1 = [1, 2, 3, 4, 5, 6] sum = 0 for i in list1: # 如果是奇数,则跳出本次循环 if i % 2 != 0: continue # 偶数则加上 sum += i print(sum) # 输出结果 12
2+4+6
结合 break + if 的栗子
# break + if list1 = [1, 2, 3, 4, 5, 6] sum = 0 for i in list1: # 如果是 4 ,则结束 for 循环 if i == 4: break # 偶数则加上 sum += i print(sum) # 输出结果 6
1+2+3
if 详解
https://www.cnblogs.com/poloyy/p/15087130.html
在 for 循环中使用 else 语句
语法格式
for 变量 in 序列: 代码块 1 else: 代码块 2
当 for 循环正常完成后,会自动进入到 代码块 2
代码栗子一
检测 number 是否会素数
- range(2, number) 会生成 2、3、4、5、6、7、8 的数字序列
- 判断 factor 是否可以被 number 整除
- 如果是,则 number 不是素数
- 如果 for 循环整除结束,就会进到 else 里面,则 number 为素数
number = 9 # 2,3,4,5,6,7,8 for factor in range(2, number): print(factor) # 9 求模 2、3、4、5、6、7、8 if number % factor == 0: # factor = 3 会进到这里 is_prime = False # 结束 for 循环 break else: # 素数 is_prime = True print(is_prime) # 输出结果 False
代码栗子二
# else for i in range(10): print(i) if i == 4: break else: print("执行 else 代码块") # 输出结果 0 1 2 3 4
重点
- 若想执行 else 里面的代码块,必须是触达到循环条件且为假
- 如果在循环里面提前结束了循环(break),则不会执行 else 里面的代码块