• 1.11 for语句(Python)


    本文来自异想之旅公开发布的Python教程,原文地址:https://www.yuque.com/yxzl/python

    简介

    (这一段理解不了直接跳不影响)

    for 语句的格式:

    for 循环变量 in 迭代变量:
        循环体
    
    • 1
    • 2

    for 会:

    • 获取迭代变量的迭代器 迭代器 = iter(迭代变量)
    • 每次将循环变量赋值为循环变量 = next(迭代器)

    具体流程可以参考下图:

    在这里插入图片描述

    简单的示例

    for i in [1, 2, 3]:
        print(i)
    print('END')
    
    • 1
    • 2
    • 3

    输出:

    1
    2
    3
    END
    
    • 1
    • 2
    • 3
    • 4

    在本例中,i是一个普通的变量,可以使用任意合法且未使用的变量名,一般约定上使用i,j,k,l...;而for语句根据in后面跟随的列表的长度决定循环次数,并在每次循环中依次把列表中的每一个值赋值给i。当赋值结束,循环也就终止。

    for i in range

    更多的时候,我们使用for循环只是为了严格的进行指定次数的循环,这时候相比先手动去建立一个列表,Python为我们提供了更简单的方式:

    for i in range(3):
        print(i)
    
    • 1
    • 2

    输出:

    0
    1
    2
    
    • 1
    • 2
    • 3

    可以看到,上面的这两行代码共循环执行了3次print语句,i的取值是0,1,2

    这里我们可以用listrange()的返回值进行一次转换,来观察其规律:

    print(list(range(3)))  # [0, 1, 2]
    print(list(range(0, 3)))  # [0, 1, 2]
    print(list(range(3, 6)))  # [3, 4, 5]
    print(list(range(3, 6, 2)))  # [3, 5]
    print(list(range(7, 3, -1)))  # [7, 6, 5, 4]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 当我们只传递一个参数时,程序处理时会自动帮我们填充0,即range(x)等价于range(0, x),并按照下面的规则处理
    • 当我们传递两个或三个参数时,range生成的列表范围和切片所能取到的列表项的索引是相同的,具体请参考 1.7 章节的相关内容。

    当然了,对于上例中的任何一个式子,用在for中也是一样的结果,此处以range(3, 6, 2)做演示:

    for i in range(3, 6, 2):
        print(i)
    
    # 输出:
    # 3
    # 5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    for i in str

    与“简单的示例”类似的,作为和列表在某些特性上极为相似的类型,for i in str也是合法的:

    for i in 'Hello':
        print(i, end='-')
    
    # 输出:H-e-l-l-o-
    
    • 1
    • 2
    • 3
    • 4

    for 中的 else

    与 上一章节 中提到的“while中的else”一样,如果for循环正常退出,则会执行else中的语句;如果for循环是被break结束,则不会执行。

  • 相关阅读:
    golang roadrunner中文文档(一)基础介绍
    设备树的理解与运用
    2022年陕西省初级职称怎么报名?需要准备什么资料?
    Spring中事务的几种失效场景
    python学习笔记1-SortedList的使用
    【计算机毕业设计】音乐管理系统
    ASM文件系统 数据如何写和读数据
    【Oracle】Oracle系列之十六--数据库备份
    实战Node.js原理对于阻塞和EventEmitter及其继承的运用心得
    K-means(K-均值)算法
  • 原文地址:https://blog.csdn.net/weixin_44495599/article/details/126184639