美文网首页Python程序员
Python 简明教程 --- 6,Python 控制流

Python 简明教程 --- 6,Python 控制流

作者: 码农充电站pro | 来源:发表于2020-12-09 09:59 被阅读0次

    Talk is cheap, show me the code.
    —— Linus Torvalds

    目录

    控制流用来控制程序的处理流程,即当程序满足或不满足某一条件时,让程序去做哪些事情。

    控制流语句使得我们可以处理丰富的代码逻辑。

    基本的控制流语句有三种,分别是:

    • if 条件语句
    • for 循环语句
    • while 循环语句

    1,if 条件语句

    if 语句用于判断一个条件,当条件为True 时,执行一段代码,当条件为False 时,执行另一段代码。

    if 语句有三种结构:

    • 没有分支
    • 一个分支
    • 多个分支

    分支内要执行的语句,需要有缩进,每个条件后边要有冒号:,如下:

    # 没有分支
    if 条件:
        # 条件为True 时要执行的语句
        ...
    
    # 一个分支
    if 条件:
        # 条件为True 时要执行的语句
        ...
    else:
        # 条件为False 时要执行的语句
        ...
    
    # 多个分支
    if 条件1:
        # 条件1 为True 时要执行的语句
        ...
    elif 条件2:
        # 条件2 为True 时要执行的语句
        ...
    elif 条件3:
        # 条件3 为True 时要执行的语句
        ...
    else:
       # 条件1,条件2,条件3 都为False 时要执行的语句
        ...
    

    多分支语句时,如果有多个条件都为True,则只会执行第一个条件为True 内的语句,其它条件为True 内的语句不会执行。

    比如上面的多分支if 语句中:

    • 如果条件1条件2条件3都为True,则只会执行条件1 内的语句。
    • 如果条件1False条件2条件3都为True,则只会执行条件2 内的语句。

    if 语句后边的条件,可带括号(),可不带括号(),如下是带括号的:

    # 带括号的if 语句
    if (条件):
        ...
    

    if 语句嵌套

    if 语句中还可以嵌套if 语句,下面是一个简单的if 嵌套语句结构:

    if 条件1:
        ...
        if 条件2:
           ...
           
        ...
    

    示例,根据分数判断等级

    scores = ...    # 分数
    grade = None    # 等级
    
    if scores > 90:
        # 分数大于90 时,等级为优秀
        grade = '优秀'
        
    elif scores > 80:
        # 分数大于80 时,等级为良好
        grade = '良好'
        
    elif scores > 60:
        # 分数大于60 时,等级为及格
        grade = '及格'
        
    else:
        # 否则,等级为不及格
        grade = '不及格'
    

    2,for 循环语句

    Python 中的for 循环不同于C/C++Java 中的for 循环。

    Python 中的for 语句实际上是for...in 语句,通常用于遍历一个序列,序列后边要有一个冒号:

    说明:
    一个字符串,一个列表,都是一个序列。
    字符串列表,在后续章节会详细介绍。

    遍历列表:

    # l 是一个列表
    l = [1, 2, 3]
    
    # 遍历列表
    for i in l: 
        # i 是列表中的每个元素
        print(i)
    

    其输出结果为:

    1
    2
    3
    

    遍历字符串:

    # s 是一个字符串
    s = 'abc'
    
    # 遍历字符串中的字符
    for i in s:
        print(i)
    

    其输出结果为:

    a
    b
    c
    

    for 循环中的else

    for 循环中也可以有一个else 语句,在for 循环执行完之后,会在最后执行else 语句:

    # l 是一个列表
    l = [1, 2, 3]
    
    # 遍历列表
    for i in l: 
        # i 是列表中的每个元素
        print(i)
    else:
        print('for 循环执行结束')
    

    其输出结果如下:

    1
    2
    3
    for 循环执行结束
    

    for 循环的执行过程中遇到break 语句,else 语句则不会被执行:

    l = [1, 2, 3]
    for i in l:
        print(i)
    
        if i == 3: 
            # 当i 为3 时,会执行 break
            break
    else:
        print('for 循环执行结束')
    

    该段代码在执行到i3 时,会执行到break 语句,break 语句会跳出for 循环,else 语句也是for 循环的一部分,所以,else 中的语句不会被执行到。

    其输出结果如下:

    1
    2
    3
    

    注意:break 语句会在下面介绍到。

    3,while 循环语句

    下面是while 循环语句的语法格式,条件后边有一个冒号:,如下:

    while 条件:
        # 条件为True 时要执行的语句
        ...
        ...
    

    while 语句的含义是,当条件True 时,会一直执行while 循环中的代码,直到某一时刻条件变为了False

    每次在执行while 循环体内的语句块之前,都会判断条件,如果条件True,则执行循环体,如果条件False,则退出循环体。

    示例:

    i = 3
    while i > 0:
       print(i)
       i = i - 1
    

    这段代码的输出结果为:

    3
    2
    1
    

    i 减到0 时,i > 0False,此时while 循环结束。

    while 循环中else

    while 循环也与for 循环一样,可以有else 语句:

    while 条件:
        ...
    else:
        ...
    

    无限循环

    无限循环是一个特殊的循环,其条件永远为,如下就是一个无限循环:

    while True:
        ...
        ...
    

    只要无限循环中的语句没有主动退出,或者遇到异常,则无限循环中的语句将永远执行下去。

    4,continue 语句

    continue 语句用在for 循环和while 循环中,当遇到continue 语句时,会跳到循环的开头执行。

    示例:

    i = 3
    while i > 0:
        i = i - 1
    
        if i == 2:
            print('跳到循环开头')
            continue
                
        print(i)
    

    其输出如下:

    跳到循环开头
    1
    0
    

    i == 2 时,执行完print('跳到循环开头') 后,执行continue 语句,然后跳到循环开头执行,所以,i == 2 时,没有执行print(i)

    5,break 语句

    break 语句也是用在for 循环和while 循环中,当遇到break 语句时,会跳出循环体。

    示例:

    i = 3
    while i > 0:
        i = i - 1
    
        if i == 0:
            print('跳出循环')
            break
                
        print(i)
    

    其输出结果如下:

    2
    1
    跳出循环
    

    i == 0 时,执行完print('跳出循环') 后,执行break 语句,然后跳出循环,所以,i == 0 时,没有执行print(i)

    6,pass 语句

    pass 语句经常在控制流中用到,pass 语句是一个空语句,不执行任何东西,只起到一个占位的作用。

    示例:

    i = ...
    if i == 0:
        # 做任何事情
        pass
    else:
        print('i 不为 0')
    

    (完。)


    推荐阅读:

    Python 简明教程 --- 1,搭建Python 环境
    Python 简明教程 --- 2,第一个Python 程序
    Python 简明教程 --- 3,Python 基础概念
    Python 简明教程 --- 4,Python 变量与基本数据类型
    Python 简明教程 --- 5,Python 表达式与运算符

    相关文章

      网友评论

        本文标题:Python 简明教程 --- 6,Python 控制流

        本文链接:https://www.haomeiwen.com/subject/ofrvwktx.html