• Python 程序设计结构



    概述

    按照设计方法的不同,计算机程序设计可分为面向对象程序设计和面向过程程序设计。无论是用哪种设计方法实现的计算机程序,在其各个局部代码中,程序仍然按照结构化的编程步骤执行。
    结构化的程序设计思想:将程序划分为不同的结构,这些结构决定程序执行的顺序,结构化程序有三种基本结构:顺序结构、选择结构和循环结构。

    • 顺序结构:程序由上到下依次执行每条语句。
    • 选择结构:程序判断某个条件是否成立,以决定执行哪部分代码。
    • 循环结构:程序判断某个条件是否成立,以决定是否重复执行某部分代码。

    顺序结构

    顺序结构程序中,依次执行程序代码。流程图见下图:
    在这里插入图片描述

    a = 5
    b = 6
    c = a + b
    print("c = ", c)     # c = 11
    
    • 1
    • 2
    • 3
    • 4

    选择结构

    选择结构根据某个条件决定执行不同部分的语句块

    分支结构

    单分支结构可用 if 语句实现。

    '''
    其一般格式如下:
    if  表达式:(表达式结果为:真,执行语句块;否,执行后续代码)
    	语句块(表达式结果为真所执行的语句)
    
    后续代码...
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    流程图如下:
    在这里插入图片描述

    # 判断从键盘输入整数的奇偶性并输出结果
    n = int(input("请输入一个整数: "))
    flag = str(n) + " 是偶数!"
    if n % 2 != 0:
        flag = str(n) + " 是奇数!"
    print(flag)
    
    请输入一个整数: 435
    435 是奇数!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    二分支结构

    '''
    一般形式:
    if 表达式:  表达式真值:为真,执行语句块1;为假,执行语句块2
    	语句块1
    else:
    	语句块2
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    流程图如下:
    在这里插入图片描述

    # 求两个数中较大的数并输出
    a = 5
    b = 6
    if a > b:
        max = a
    else:
        max = b
    print("max = ", max)
    
    # max =  6
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    多分支结构

    '''
    测试条件顺序为表达式1,表达式2...
    一般形式:
    if 表达式1:      出现 一次
    	语句块1
    elif 表达式2:   出现多次
    	语句块2
    else:      else 出现一次
    	语句块 n + 1
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    流程图如下:
    在这里插入图片描述

    # 使用 if 多分支语句判断键盘输入成绩等级并输出
    score = int(input("请输入成绩: "))
    if score >= 90:    # 90 分以上
        print("优秀!")
    elif score >= 80:    # 80 ~ 90
        print("良好!")
    else:               # 其余成绩
        print("不合格!")
    
    请输入成绩: 93
    优秀!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    条件运算

    '''
    条件运算相当于一个二分支结构语句的简略形式,一般形式如下:
    表达式1 if 表达式 else 表达式2
    
    执行过程:如果 if 后面的表达式真值为 True,则以表达式1 的值为条件运算的结果;否则,以表达式2 的值为条件运算的结果
    '''
    
    # 如前面二分支求较大数的例子,可以改写为:
    a = 5
    b = 6
    print("max = ", a if a > b else b)  # max = 6
    
    # 判断从键盘上输入学生成绩是否合格
    score = int(input("请输入学生成绩: "))
    flag = "合格" if score >= 60 else "不合格"
    print("等级为: ", flag)
    
    请输入学生成绩: 68
    等级为:  合格
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    选择结构嵌套

    当在一个选择结构中需要进一步的条件选择时,可以在 if 语句中再嵌套使用 if 语句,形成选择结构嵌套以实现相应功能。

    # 求三个数中最大的数据并输出
    a = 3; b = 2; c = 4
    if a > b:               # 条件为True,只需要比较 a 和 c
        if a > c:           # 即 a > b 且 a > c
            print("最大的数是: ", a)
        else:               # 即 a > b 且 a <= c
            print("最大的数是: ", c)
    else:                   # 条件为False,只需要比较 b 和 c
        if b > c:           # 即 b >= a 且 b > c
            print("最大的数是: ", b)
        else:               # 即 b >= a 且 b <= c
            print("最大的数是: ", c)
    
    最大的数是:  4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    循环结构

    循环结构依据某一条件反复执行某段程序,即语句块。该语句块被执行的次数称为循环次数。


    while 语句


    while 语句基本用法

    '''
    while 语句用于循环执行一段程序,即在满足某种条件的情况下循环执行某段程序,以处理需要重复处理的相同任务。
    while 语句一般格式:
    while 表达式:
    	语句块
    [else:     # python 中的[ ] 中的内容均可以省略
    	else 字句语句块]
    
    while 语句执行过程:如果表达式的值为 True,则执行 while 后面的语句块;否则,执行 else 字句语句块,结束循环。else 子句为可选。
    简单理解执行过程:先执行while 语句,知道表达式为 False,再接着执行else语句,但是如果是因为break而中途跳出了while 语句,则不会执行else语句;使用continue则不会有影响
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    # 使用 while 语句计算 1~100 的和
    n = 100         # 终止值
    sum = 0         # 保存结果
    i = 1           # 循环变量
    while i <= n:
        sum = sum + i
        i += 1
    print("1 到 %d 之和为: %d" % (n, sum))     # 1 到 100 之和为: 5050
    
    
    
    # 使用 while-else 语句求 i 的阶乘
    mul = 1; i = 1; sum = 0
    while i <= 10:
        mul = mul * i        # 计算阶乘
        sum = sum + mul      # 计算和
        i = i + 1         # 如果在此处语句后再添加一个break,则会发现 else 语句不会执行
    else:
        print("循环结束! ")    # 结束循环提示
    print("sum = ", sum)     
      
    # 循环结束! 
    # sum =  4037913
    
    
    
    # 简略写法(适用 while 语句的语句块只包含一条语句)
    flag = True
    while flag: print("Hello world!")   # 谨慎使用,会死循环
    
    • 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
    • 29

    while 语句块中的 input() 函数

    while 语句常常和 input() 函数结合使用,给变量循环输入数据,进行相应的处理。

    # 通过键盘动态录入成绩,输入-1 退出录入,并计算录入成绩的总分和平均分
    total = 0; ave = 0; count = 0
    score = int(input("请输入学生英语成绩: "))
    while score != -1:            # 输入"-1",结束录入
        total = total + score     # 计算成绩总分
        count = count + 1         # 计算录入成绩的数量
        score = int(input("请输入学生英语成绩: "))
    ave = total / count           # 计算平均分
    print("录入学生英语成绩 %d 份,学生英语总成绩 %d,平均成绩 %4.2f." % (count, total, ave))
    
    请输入学生英语成绩: 88
    请输入学生英语成绩: 54
    请输入学生英语成绩: 76
    请输入学生英语成绩: -1
    录入学生英语成绩 3 份,学生英语总成绩 218,平均成绩 72.67.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    for 语句


    for语句基本用法

    '''
    在 Python 中,for 语句更适合循环访问系列或迭代对象(如字符串、列表、元组、字典等)中的元素
    
    其一般格式为:
    for 变量 in 序列或迭代对象:
    	语句块
    [else:
    	else 字句语句块]
    
    执行过程:当序列或迭代对象中的元素没有遍历完毕时,执行 for 语句中的语句,否则,执行 else 子句中的语句块,结束循环。else 子句可省略
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    # 使用 for 循环遍历列表中的元素
    for letter in 'Python':
        print(letter, end=' ')
    print()
    
    P y t h o n 
    
    # 使用 for-else 语句遍历元组的元素并在结束后给出提示
    mathmaticians = ('阿基米德', '牛顿', '高斯', )
    print("数学家: ", end=' ')
    for sxj in mathmaticians:
        print(sxj, end=' ')     # 和 while-else 语句相同,若是使用 break 跳出,则不会执行 else 语句
    else:
        print("\n提示:元组遍历完成!")
    
    数学家:  阿基米德 牛顿 高斯 
    提示:元组遍历完成!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    for 语句中的 range() 函数

    range() 函数经常用在 for 循环中,用于控制循环次数。

    一般形式:[]中为可选项,注意参数顺序不能乱
    range(start[, end[, step]])
    
    几种具体形式如下:
    range(end) : 省略开头(默认从索引下标为0开始),代表range(start, end) 包含头不包含尾 [start, end),即左开右闭,步长默认为1
    range(start, end) : 自定义开头和结尾
    range(start, end, step): 规定步长,可以逆向走(step < 0
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    for i in range(10):      # range(10) 代表 [0, 10)
        print(i, end=' ')
    
    0 1 2 3 4 5 6 7 8 9 
    
    # 求 1~20 范围内能被 3 整除的所有数
    # 方法一:通过设置 range() 函数步长为 3 实现
    sum = 0
    for i in range(0, 21, 3):        # 范围 0~20,不包括21,步长为3
        sum = sum + i                # 计算和
    print('sum = ', sum)             # 输出结果
    
    sum =  63
    
    # 方法二:通过判断该数除以3的余数是否为 0 的实现
    sum = 0
    for i in range(1, 21):         # 范围为 1~20,不包括21
        if i % 3 == 0:             # 能被 3 整除,则余数为 0
            sum = sum + i          # 计算和
    print('sum = ', sum)           # 输出结果
    
    sum =  63
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    break、continue 和 pass 语句

    在 Python 中:

    • break 语句用于退出循环
    • continue 语句用于跳过该次循环
    • pass 是空语句(不作任何处理)

    通过上述三种语句可以控制循环的执行和保持程序结构的完整性。

    # 使用 break 语句跳出循环语句
    count = 0  # 计数
    while True:
        if count < 3:
            print("Hello World!")
            count = count + 1
        else:
            break         # 跳出循环
    
    
    # 使用 continue 跳过某次遍历
    for i in range(21):
        if i % 3 == 0:
            continue
        else:
            print(i, end=' ')
    
    1 2 4 5 7 8 10 11 13 14 16 17 19 20 
    
    
    # 使用 pass 作为占位符,可以在写程序时先使用 pass 作为占位符,写好大概格式后再进行细节描写,这样对于有很多层嵌套语句的场景有很大的帮助
    if xx:
    	pass
    	if xx:
    		pass
    		...
    	else:
    		pass
    else:
    	pass
    
    • 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
    • 29
    • 30

    循环结构的嵌套

    在一个循环结构的循环体内出现另一个循环结构,称为循环结构的嵌套。

    # 打印菱形
    for i in range(1, 5):
        print(" " * (5 - i), end="")   # 打印空格
        print("*", end="")     # 打印一个*
        print("**" * (i - 1), end="")   # 打印行数减一个**
        print()  # 换行
    for i in range(1, 4):
        print(" " * (i + 1), end="")    # 打印空格
        print("*", end="")   # 打印一个*
        print("**" * (3 - i), end="")   # 打印**
        print()  # 换行
    
        *
       ***
      *****
     *******
      *****
       ***
        *
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    写在最后:
    首先,如果本篇文章有任何错误,烦请读者告知!不胜感激!
    其次,本篇文章仅用于日常学习以及学业复习,如需转载等操作请告知作者(我)一声!
    最后,本文会持续修改和更新,如果对本分栏的其他知识也感兴趣,可以移步目录导航专栏,查看本分栏的目录结构,也更方便对于知识的系统总结!
    兄弟姐妹们,点个赞呗!
    感谢!笔芯!

  • 相关阅读:
    [项目管理-17]:技术研发、项目管理、部门管理三种角色的详细比较
    数据结构与算法——串
    【Preprocessing数据预处理】之Scaler
    Matlab多维数组漫谈教程
    驱动开发:内核枚举ShadowSSDT基址
    【PAT(甲级)】1053 Path of Equal Weight
    常见编写JavaScript代码时容易出现的错误(5)
    MySQL数据库与表管理《三国志》为例
    js函数传参 有默认参数时,不覆盖原有参数并传入新的参数
    STM32在STM32CubeIDE平台下的RT-Thread Nano移植
  • 原文地址:https://blog.csdn.net/weixin_52275610/article/details/126700123