• Python流程控制语句


    五、流程控制语句

    程序是由语句构成,而流程控制语句 是用来控制程序中每条语句执行顺序的语句。可以通过控制语句实现更丰富的逻辑以及更强大的功能。几乎所有编程语言都有流程控制语句,功能也都基本相似。

    其流程控制方式有

    • 顺序结构
    • 分支结构
    • 循环结构

    这里最简单最常用的就是顺序结构,即语句从上至下一一执行。

    image-20210318154636648

    1
    2
    
    print("OK")
    print("not OK") # 从上到下依次执行
    

    5.1、分支语句

    顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。

    5.1.1、单分支语句

    image-20211216155050847

    语法:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    '''
    if 表达式:
        代码块
    '''    
    
    user = input("用户名>>")
    pwd = input("密码>>")
    if user == "root" and pwd == "123":  # 返回一个布尔值
        print("登录成功")  # 强烈建议使用四个缩进
    
    print("程序结束")
    

    说明:

    1、“表达式”可以是一个单一的值或者复杂语句,形式不限,但解释器最后会通过bool获取一个true或者false的布尔值

    2、“代码块”由:与具由相同缩进标识的若干条语句组成(一般是四个缩进)。

    5.1.2、双分支语句

    双分支语句顾名思义,二条分支二选一执行!

    语法格式:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    
    '''
    if 表达式:
        代码块 1
    else:
        代码块 2
    '''
    user = input("用户名>>")
    pwd = input("密码>>")
    
    if user == "root" and pwd == "123":  # 返回一个布尔值
        print("登录成功")  # 强烈建议使用四个缩进
        print("祝贺你")
    else:
        print("登录失败")
        print("不好意思")
    

    image-20210318171626403

    5.1.3、多分支语句

    多分支即从比双分支更多的分支选择一支执行。

    语法格式:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
    '''
    if 表达式 1:
        代码块 1
    elif 表达式 2:
        代码块 2
    elif 表达式 3:
        代码块 3
    ...# 其它elif语句
    else:
        代码块 n
    '''  
    
    
    score = input("请输入您的成绩>>")  # "100"
    # 当成绩大于90的时候显示优秀,否则显示一般
    # 将数字字符串,比如"100",转换成一个整型数字的时候,需要int转换
    score = int(score)  # 100
    
    if score > 100 or score < 0:
        print("您的输入有误!")
    elif score > 90:
        print("成绩优秀")
    elif score > 70:  # else if
        print("成绩良好")
    elif score > 60:
        print("成绩及格")
    else:
        print("成绩不及格")
    

    image-20210318173151614

    5.1.4、if嵌套

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    
    score = input("请输入您的成绩>>")  # "100"
    
    if score.isdigit():
        score = int(score)  # 100
        if score > 100 or score < 0:
            print("您的输入有误!")
        elif score > 90:
            print("成绩优秀")
        elif score > 70:  # else if
            print("成绩良好")
        elif score > 60:
            print("成绩及格")
        else:
            print("成绩不及格")
    else:
        print("请输入一个数字")
    
    

    5.2、循环语句

    在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。

    Python语言中的循环语句支持 while循环(条件循环)和for循环(遍历循环)。

    5.2.1、while循环

    语法:

    1
    2
    3
    4
    5
    
    '''  
    while 表达式:
        循环体
    '''    
    
    

    image-20210319125002230

    (1)无限循环

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    # 案例1
    while 1:
        print("OK")  # 无限循环打印OK,这样使用没有什么意义
    
    # 案例2
    while 1:
    
        score = input("请输入您的成绩>>")  # "100"
    
        if score.isdigit():
            score = int(score)  # 100
            if score > 100 or score < 0:
                print("您的输入有误!")
            elif score > 90:
                print("成绩优秀")
            elif score > 70:  # else if
                print("成绩良好")
            elif score > 60:
                print("成绩及格")
            else:
                print("成绩不及格")
        else:
            print("请输入一个数字")
    

    (2)限定次数循环

    循环打印十遍"hello world”

    1
    2
    3
    4
    5
    
    count = 0  # 初始化语句
    while count < 10: # 条件判断
        print("hello world")
        count+=1  # 步进语句
    print("end")
    

    5.2.2、for循环

    for 循环的语法格式如下:

    1
    2
    3
    4
    
    '''  
    for 迭代变量 in 字符串|列表|元组|字典|集合:
      代码块
    '''   
    

    格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。

    1
    2
    3
    4
    5
    6
    7
    8
    
    for i in "hello world":
        print(i)
        
    for name in ["张三",'李四',"王五"]:
        print(name)
        
    for i in range(10): # [1,2,3,4,5,6,7,8,9] range函数: range(start,end,step)
        print(i)
    

    5.2.3、退出循环

    如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。

    • break

    当 break 关键字用于 for 循环时,会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足某个条件时便跳出循环,继续执行循环语句下面的代码。

    • continue

    不同于break退出整个循环,continue指的是退出当次循环。

    1
    2
    3
    4
    5
    6
    7
    8
    
    while 1:
        num = int(input("num>>"))
        for i in range(1, num + 1):
            # if i > 100:
            if i == 6:
                # break
                continue
            print(i)
    

    配合debug模式理解

    5.2.4、循环嵌套

    在一个循环体语句中又包含另一个循环语句,称为循环嵌套

    • 独立嵌套

    在控制台上打印一个如下图所示的正方形

    *****
    *****
    *****
    *****
    *****
    
    1
    2
    3
    4
    
    for i in range(5):
        for j in range(5):
            print("*",end="")
        print("")
    
    • 关联嵌套

    在控制台上打印一个如下图所示的三角形

    *
    **
    ***
    ****
    *****
    
    1
    2
    3
    4
    
    for i in range(5):
        for j in range(i+1):
            print("*",end="")
        print("")
    

    5.3、练习题

    5.3.1、随堂练习

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    
    # 1、计算1-100的累计和
    
    # 2、猜数游戏
    '''
    程序随机内置一个位于一定范围内的数字作为猜测的结果,由用户猜测此数字。用户每猜测一次,由系统提示猜测结果:太大了、太小了或者猜对了,直到用户猜对结果或者猜测次数用完导致失败。
    设定一个理想数字比如:66,
    让用户三次机会猜数字,如果比66大,则显示猜测的结果大了;
    如果比66小,则显示猜测的结果小了;
    只有等于66,显示猜测结果正确,退出循环。
    最多三次都没有猜测正确,退出循环,并显示‘都没猜对,继续努力’。
    
    '''
    

    5.3.2、课后作业

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    ''' 
    1、求偶数元素的和[1,2,1,2,3,3,6,5,8]  
    
    2、写代码:计算 1 - 2 + 3 - 4 + ... + 99 中除了88以外所有数的总和?
    
    3、求1+2+3+4+……+100的和.
    
    4、斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。
    计算索引为10的斐波那契数列对应的值
    
    5、打印菱形小星星
         *
        ***
       *****
      *******
     *********
    ***********
    ***********
     *********
      *******
       *****
        ***
         *
    '''
  • 相关阅读:
    区分replace()和replaceAll()
    error:java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
    关于设计SQL表的一些问题
    SQL语句的学习理解
    error:安装手电筒程序后在打开程序后报错:你的camera flashlight正在被其他程序占据
    Error:Execution failed for task ':app:processDebugGoogleServices'. > No matching client found for package name 'com.fortythree.sos.flashlight'
    Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/adp;
    Android Studio 封装的类的继承
    Android SDK安装
    MongoDB探索之路(二)——系统设计之CRUD
  • 原文地址:https://www.cnblogs.com/A121/p/16046847.html
Copyright © 2020-2023  润新知