文章目录
- 1. `for` 循环
- 2. `while` 循环
- 3. `break` 和 `continue` 语句
- 4. `else` 子句
- 5. 循环控制语句
- 6. 列表推导式
- 7. 循环中的异常处理
- 8. 循环的高级用法
1. for
循环
for
循环通常用于遍历序列(如列表、元组、字典、集合、字符串)或者迭代器。for
循环可以自动遍历这些序列中的每个元素。
# 遍历列表
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:print(fruit) # 依次打印 'apple', 'banana', 'cherry'# 遍历字符串
for char in 'hello':print(char) # 依次打印 'h', 'e', 'l', 'l', 'o'# 遍历字典的键
for key in {'a': 1, 'b': 2}:print(key)
2. while
循环
while
循环会一直执行,直到给定的条件不再为真。它适用于当你不知道循环需要执行多少次的情况。
# 打印从1到5
count = 1
while count <= 5:print(count)count += 1 # 非常重要的一步,否则会形成无限循环
3. break
和 continue
语句
break
用于立即退出循环。continue
用于跳过当前循环的剩余部分,并继续执行下一次循环。
# 使用 break 退出循环
for i in range(10):if i == 5:breakprint(i) # 打印 0 到 4# 使用 continue 跳过偶数
for i in range(10):if i % 2 == 0:continueprint(i) # 打印 1, 3, 5, 7, 9
4. else
子句
else
子句与 if
语句类似,但它与循环结合使用。如果循环正常结束(没有遇到 break
),则执行 else
块。
for i in range(10):if i == 5:break
else:print("Loop completed without encountering break.") # 如果没有break,将执行这里的代码
5. 循环控制语句
enumerate()
函数可以在遍历列表时同时获得元素的索引和值。
for index, value in enumerate(['a', 'b', 'c']):print(index, value) # 打印 (0, 'a'), (1, 'b'), (2, 'c')
6. 列表推导式
列表推导式提供了一种简洁的方式来创建列表,基于现有的列表。
# 创建一个包含前5个整数平方的列表
squares = [x**2 for x in range(5)]
print(squares) # [0, 1, 4, 9, 16]# 创建一个包含偶数平方的列表
even_squares = [x**2 for x in range(10) if x % 2 == 0]
print(even_squares) # [0, 4, 16, 36, 64]
7. 循环中的异常处理
在循环中使用 try-except
结构可以捕获并处理可能出现的异常。
# 尝试打印数字的平方根,但跳过非数字
for value in [4, 'a', 9, 16, 0, 'b']:try:print(math.sqrt(value))except ValueError:print("ValueError occurred")except TypeError:print("TypeError occurred")
8. 循环的高级用法
- 使用
zip()
函数同时遍历多个序列。 - 使用
range()
函数创建数字序列。 - 使用生成器表达式(与列表推导式类似,但使用圆括号)创建迭代器。
# 使用 zip 同时遍历两个列表
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
for item1, item2 in zip(list1, list2):print(item1, item2) # 打印 (1, 'a'), (2, 'b'), (3, 'c')# 使用 range 创建数字序列
for i in range(1, 6): # 从1到5print(i)# 使用生成器表达式创建迭代器
gen_expr = (x * 2 for x in range(5))
for value in gen_expr:print(value) # 依次打印 0, 2, 4, 6, 8