Python for循环详解 下面是对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循环在执行过程中需要进行变量的初始化、比较和更新,这可能会导致一定的开销。然而,这种差异通常很小,并且在大多数情况下可以忽略不计。

作者:红虾程序员原文地址:https://blog.csdn.net/m0_70296476/article/details/145305258

%s 个评论

要回复文章请先登录注册