目录

一、基本语法

二、用法示例

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

  • 作者:红虾程序员

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python for循环详解

    发表回复