文章目录
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:
break
print(i) # 打印 0 到 4
# 使用 continue 跳过偶数
for i in range(10):
if i % 2 == 0:
continue
print(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到5
print(i)
# 使用生成器表达式创建迭代器
gen_expr = (x * 2 for x in range(5))
for value in gen_expr:
print(value) # 依次打印 0, 2, 4, 6, 8
9. 循环嵌套
Python中的循环嵌套指的是在一个循环内部再使用另一个循环,这通常用于需要对数据进行多维度处理的情况。
- 基本的循环嵌套结构
嵌套循环的基本结构如下:
for i in range(a): # 外层循环
for j in range(b): # 内层循环
# 执行一些操作
这里的a
和b
是循环的次数,i
和j
是循环变量。
- 嵌套循环的例子
打印出从1到某个数n
的所有数字的平方,并且每打印5个数字就换行:
n = 10 # 假设我们打印到10的平方
for i in range(1, n + 1): # 外层循环,从1到n
for j in range(5): # 内层循环,打印5个数字
print(f"{i} * {i} = {i**2}", end="\t") # 打印平方
print() # 每打印5个数字后换行
打印了list1
和list2
中所有可能的字符和数字的组合:
list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
for item1 in list1: # 外层循环,遍历list1
for item2 in list2: # 内层循环,遍历list2
print(f"{item1}: {item2}") # 打印组合
加油,披星戴月的年轻人