• 大爽Python入门教程 3-3 循环:`for`、`while`


    大爽Python入门公开课教案
    点击查看教程总目录

    for循环

    可迭代对象iterable

    不同于其他语言。
    python的for循环只能用于遍历 可迭代对象iterable 的项。
    即只支持以下语法:

    for item in iterable:
        ...
    

    其中

    • iterable是可迭代对象
    • item是可迭代对象中的项。
    • ...是(要换成)循环时要执行的代码。

    可迭代对象的定义和具体原理解释起来比较复杂(其实我也不是很会Orz)。

    这里只需要了解基础的。
    哪些是(基础的)可迭代对象。

    回顾一下,我们现阶段所学习的对象,
    哪些是是可迭代的。

    • 序列sequence,包括字符串str,元组tuple,列表list
    • 字典dict,迭代出的项是键key
    • range(n)

    这里再进一步的介绍下range这个函数

    range

    首先回顾下for i in range(n)的效果,
    i从0,1,2遍历到n-1。
    示例如下

    >>> for i in range(5):
    ...     print(i)
    ...
    0
    1
    2
    3
    4
    

    实际上,该方法会产生一个可迭代对象。
    不过可以用list方法将其产生的可迭代对象
    转换成列表。

    >>> range(5)
    range(0, 5)
    >>> list(range(5))
    [0, 1, 2, 3, 4]
    

    有时可以使用这个办法快速生成列表。

    接下来,我们详细的介绍下range这个函数。

    为了便于理解,大家可以认为range函数有三种写法:

    • range(end): 从0,1,2迭代到n-1。
    • range(start, end): 从start, start+1, start+2 迭代到n-1。
      即迭代时,每次增长1
    • range(start, end, step): 从start, start+step, start+2*step迭代到n-1。
      即迭代时,每次增长step。(step本身有步长的意思,或者说一步的距离)

    实际上,第三种写法range(start, end, step)是完整形态。
    第二种写法是step为1的特殊形态。(step默认值为1)
    第一种写法是start为0、step为1的特殊形态。(start默认值为0)

    到这里,大家应该能理解:
    我们上面调用range(5)的时候,
    实际上得到range(0, 5)的原因了。

    代码示例

    >>> list(range(10))
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> list(range(5, 10))
    [5, 6, 7, 8, 9]
    >>> list(range(0, 10, 2))
    [0, 2, 4, 6, 8]
    >>> list(range(0, 10, 3))
    [0, 3, 6, 9]
    

    while循环

    for循环的特点是,直接遍历可迭代对象。
    while循环的特点是,按条件循环。
    其语法如下。

    while condition:
        statement
    
    • condition,循环条件
    • statement: 循环体。
    1. 如果conditionTrue,则执行下方缩进的代码块statement
      否则,跳出while循环。
    2. (conditionTrue时)执行完代码块statement之后,
      回到循环开头while condition处,重复步骤一。

    使用示例

    n = 5
    while n > 0:
        n -= 1
        print(n)
    

    其输出为

    4
    3
    2
    1
    0
    

    breakcontinue

    • break: 直接退出(跳出)循环
    • continue: 跳过本轮循环,进入下一轮循环。

    break示例

    lst = [10, 5, 2, 9, 3, -1, 6, 7]
    
    for item in lst:
        if item < 0:
            break
    
        print(item)
    

    其输出为

    10
    5
    2
    9
    3
    

    解释:
    遍历列表中的每一项item
    item小于0时,break中断了整个循环。
    后面的项就无法被遍历。

    continue示例

    lst = [10, 5, 2, 9, 3, -1, 6, 7]
    
    for item in lst:
        if item < 0:
            continue
    
        print(item)
    

    其输出为

    10
    5
    2
    9
    3
    6
    7
    

    解释:
    遍历列表中的每一项item
    item小于0时,跳过本轮循环,本轮后面的代码(即print(item))不再执行,
    进入下一轮循环, 直接遍历列表的下一个item

    其效果为遇到小于0的item不输出(跳过输出)。

  • 相关阅读:
    类似jq的即点即改
    负载均衡
    设置session的过期时间
    php连接池 php–cp
    正则表达式之我见—平衡组/递归匹配
    正则表达式之我见—处理模式
    正则表达式之我见—注释
    正则表达式之我见—零宽断言 与 负向零宽断言
    正则表达式之我见—后向引用
    正则表达式之我见—反义
  • 原文地址:https://www.cnblogs.com/BigShuang/p/15310176.html
Copyright © 2020-2023  润新知