码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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。

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

    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结束,则不会执行。

  • 相关阅读:
    【esp32】arduino-数码管
    89:第七章:开发前台首页、作家个人展示页、粉丝等功能:10:【前台,作家中心:粉丝比例柱状图、饼状图;粉丝地域分布】(前端图表使用Echarts实现;)
    安装多个不同版本chrome浏览器
    SQLITE 数据库增删改查
    Photoshop-图层相关概念-LayerComp-Layers-移动旋转复制图层-复合图层
    有关 java.io.IOException: Connection reset by peer 解决问题方法之一
    Unirech腾讯云国际代充-云服务器cvm常见问题解答
    高并发下的分布式缓存 | Read-Through缓存模式
    数据采集实战:如何自动化运营微博?
    【c++源码】老飞飞源码完整v15源码(包含数据库前端后端源文件)
  • 原文地址:https://blog.csdn.net/weixin_44495599/article/details/126184639
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号