Python for循环详解
目录
一、基本语法
二、用法示例
1、遍历字符串
2、遍历列表
3、遍历元组
4、遍历字典
5、使用range()函数
6、使用enumerate()函数
7、嵌套循环
8、break和continue语句
9、else子句
三、优点
四、缺点
在Python中,for循环是一种用于迭代可迭代对象(如列表、元组、字典、集合、字符串或任何实现了迭代协议的对象)的语句,它允许按顺序访问可迭代对象中的每个元素,并对每个元素执行一组语句。
下面是对for
循环的详细解释和示例。
一、基本语法
for element in iterable:
# 循环体:对每一个元素执行的代码
element:在每次迭代中,当前元素的名称。
iterable:一个可迭代对象,如列表、元组、字符串等。
循环体:对iterable
中的每个元素执行的代码块。
二、用法示例
1、遍历字符串
string = "hello"
for char in string:
print(char, end=" ") # 输出:h e l l o
2、遍历列表
names = ['张三', '李四', '王五']
for name in names:
print(name, end=" ") # 输出:张三 李四 王五
3、遍历元组
tup = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
for i in tup:
print(i, end=" ") # 输出:1 2 3 4 5 6 7 8 9 10
4、遍历字典
student_scores = {'张三': 73, '李四': 64, '王五': 95}
# 遍历键
for student in student_scores:
print(student, end=" ")
print()
# 输出:张三 李四 王五
# 遍历值
for score in student_scores.values():
print(score, end=" ")
print()
# 输出:73 64 95
# 遍历键值对
for student, score in student_scores.items():
print(f"{student}: {score}", end=" ")
# 输出:张三: 73 李四: 64 王五: 95
5、使用range()函数
range()
函数生成一个整数序列,常用于需要固定次数的循环。
# 打印0到4的数字
for i in range(5):
print(i, end=" ") # 输出:0 1 2 3 4
range()
函数可以接受三个参数:range(start, stop[, step])
,其中start
是序列的起始值,stop
是序列结束的上限(不包含此值),step
是步长(默认为1)。
# 打印0到9的偶数
for i in range(0, 10, 2):
print(i, end=" ") # 输出:0 2 4 6 8
6、使用enumerate()函数
enumerate()
函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标。
names = ['张三', '李四', '王五']
for index, name in enumerate(names):
print(f"Index: {index}, Name: {name}")
# 输出:
# Index: 0, Name: 张三
# Index: 1, Name: 李四
# Index: 2, Name: 王五
7、嵌套循环
我们可以在for
循环中嵌套另一个for
循环,这在处理二维数据结构时非常有用。
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for row in matrix:
for element in row:
print(element, end=" ")
print() # 换行
# 输出:
# 1 2 3
# 4 5 6
# 7 8 9
8、break和continue语句
break:立即退出循环,不再执行循环中剩余的语句和后续的迭代。
continue:跳过当前迭代中剩余的语句,并继续执行下一次迭代。
# 使用break
for i in range(10):
if i == 5:
break
print(i, end=" ") # 输出:0 1 2 3 4
print() # 换行
# 使用continue
for i in range(10):
if i % 2 == 0:
continue
print(i, end=" ") # 输出:1 3 5 7 9
9、else子句
for
循环还可以有else
子句,该子句在循环正常结束(即没有遇到break
)时执行。
for i in range(5):
if i == 3:
break
print(i, end=" ")
else:
print("循环1正常结束")
# 输出:0 1 2
print()
for i in range(5):
print(i, end=" ")
else:
print("循环2正常结束")
# 输出:0 1 2 3 4 循环2正常结束
三、优点
简洁性:通过将重复的代码逻辑放入循环中,避免编写大量重复的代码,大大增加了代码的简洁性。
直接性:与其他编程语言相比,Python的for循环语法更直观,不需要使用索引来访问元素,可以直接对列表中的每个元素进行迭代。
通用性:不仅适用于列表,还可以用于其他可迭代对象,如元组、字符串、字典等。
灵活可控:提供了灵活的控制,允许开发者自定义循环的起始值、结束值和步长。
节省内存:使用for循环可以节省内存空间,尤其是在处理大量数据时。
自动处理异常:for循环内部自动执行try异常处理,简化了代码编写。
四、缺点
范围限制:Python中的for循环只能遍历有限范围内的元素,当需要遍历无限范围或动态范围的数据时,for循环就不再适用。
无法访问索引:如果需要在迭代过程中使用元素的索引,for循环则不提供直接支持,可能需要额外的逻辑来处理。
嵌套循环的复杂性:当多个for循环嵌套在一起时,代码的可读性和可维护性可能会降低,增加了出错的风险,使调试变得更加困难,并且时间复杂度呈指数级增长,可能导致性能问题。
性能开销:与手动管理索引和条件判断的while循环相比,for循环在执行过程中需要进行变量的初始化、比较和更新,这可能会导致一定的开销。然而,这种差异通常很小,并且在大多数情况下可以忽略不计。
作者:红虾程序员