> 文档中心 > Python程序流程控制结构

Python程序流程控制结构

​​#21天学习挑战赛—100天精通Python从入门到就业#

在这里插入图片描述

🤵‍♂️ 个人主页: Flyme awei
👨‍💻 作者简介:Python领域新星创作者。
🐋 希望大家多多支持😘一起进步呀!
📝 文章对你有帮助👉关注✨点赞👍收藏📂

活动地址:CSDN21天学习挑战赛

前言

  上一节,学习【Python语言的运算符】包括:算数运算符、赋值运算符、比较运算符、布尔运算符、位运算符。
  本节将学习:【Python程序的控制结构】顺序、分支、循环结构。

文章目录

  • 前言
  • 一、程序的组织结构
    • 1.三种基本结构
    • 2.程序流程图
  • 二、顺序结构
  • 二、选择结构(分支结构)
    • 1.单分支 if
    • 2.双分支 if...else
    • 3.多分支 if...elif..else
    • 4. 嵌套`if`的使用
    • 5.三元表达式
    • 6.pass语句
  • 三、循环结构
    • 1.range()函数的使用
    • 2.遍历循环for-in
    • 3.无限循环while
    • 4.循环控制break和continue
      • 4.1break
      • 4.2continue
    • 5.嵌套循环
  • 四、总结

一、程序的组织结构

1.三种基本结构

  1996年,计算机科学家证明了这样的事实:任何简单或复杂的算法都可以由顺序结构选择结构循环结构这三种基本结构组合而成

在这里插入图片描述

2.程序流程图

  程序流程图是一种表达程序控制结构的方式,主要用于关键部分的程序分析和过程描述,由一系列图形、流程线和文字说明等组成。
Python程序流程控制结构

二、顺序结构

程序按照线性顺序依次执行的一种运行方式。

例:把大象装冰箱分几步:

# 把大象装冰箱分几步print('--------程序开始--------')print('1.把冰箱门打开')print('2.把大象装进冰箱')print('3.关上冰箱门')print('--------程序结束--------')

二、选择结构(分支结构)

  程序根据判断条件的布尔值选择性地执行部分代码明确的让计算机知道在什么条件下,该去做什么

1.单分支 if

中文语义:如果......就......

Python程序流程控制结构
语法结构:

if 条件表达式:    条件执行体

if条件语句:判断一次,条件为True时执行一次

# if条件语句 判断一次 条件为True时执行一次money = 100s = int(input('请输入取款金额:'))if s <= 100:    money = money - s    print('取款成功,余额为', money)

2.双分支 if…else

中文语义:如果......不满足......就......
Python程序流程控制结构
语法结构:

if 条件表达式:  条件执行体else:  条件执行体2

双分支结构if...else,二选一执行

'''双分支结构if...else,二选一执行'''# 从键盘输入一个整数,编写程序让计算机判断是奇数还是偶数num = int(input('请输入一个整数:'))if num % 2 == 0:    print(num, '是偶数')else:    print(num, '是奇数')

3.多分支 if…elif…else

中文语义:如果......就......如果......不满足......就......
Python程序流程控制结构

语法结构:

if 条件表达式:   条件执行体elif   条件表达式:   条件执行体elif   条件表达式:  条件执行体elif   条件表达式:  条件执行体else:  条件执行体

例:
从键盘录入一个整数成绩:
90-100 : A
80-89 : B
70-79 : C
60-69 : D
0-59 :E
小于0或大于100 不及格

代码:

num = int(input('从键盘输入一个成绩:'))if 90 <= num <= 100:    print('A')elif 80 <= num <= 89:    print('B')elif 70 <= num <= 79:    print('C')elif 60 <= num <= 69:    print('D')elif 0 <= num <= 59:    print('E')else:    print('不及格')

4. 嵌套if的使用

语法结构

if 条件表达式1:    if 内层条件表达式: 内层执行体1    else:    内层执行体2else:    条件执行体

Python程序流程控制结构
例:商场消费

会员:    >=200    8>=100    9<100     不打折非会员:     >=200    9.5<100     不打折

代码:

answer = input('您是会员吗?y/n')money = float(input('请输入您的购物金额:'))# 外层判断是否是会员if answer == 'y':  # 会员    if money >= 200: print('打8折,付款金额为:', money*0.8)    elif money >= 100: print('打9折,付款金额为:', money*0.9)    else: print('不打折,付款金额为:', money)else:  # 非会员    if money >= 200: print('打9.5折,付款金额为:', money*0.95)    else: print('不打折,付款金额为:', money)

5.三元表达式

语法结构x if 判断条件 else y

运算规则:如果判断条件的布尔值为True,条件表达式的返回值为x,否则条件表达式的返回值为False

# 条件表达式   x if 判断条件 else ya = int(input('请输入第一个整数:'))b = int(input('请输入第二个整数:'))'''if a >= b:    print(a, '>=', b)else:    print(a, '<', b)'''# 条件表达式print(str(a) + '小于' + str(b)) if a < b else (str(a) + '大于' + str(b))

6.pass语句

pass语句什么都不做,只是一个占位符,用在语法上需要语句的地方

def fun(a, b):    pass

什么时候使用pass语句:先搭建语法结构,还没想好代码怎么写的时候 。

pass语句与哪些语句一起使用:

  1. if语句的条件执行体
  2. for-in语句的循环体
  3. 定义函数def时的函数体
a = 1b = 2if a < b:    passfor i in range(10):    passdef fun(a, b):    pass

三、循环结构

  反复做同一件事情的情况,称为循环,Python语言的循环结构包括两种:遍历循环无限循环。遍历循环使用保留字forin依次提取遍历结构各元素进行处理;无限循环使用保留字while根据判断条件执行程序
Python程序流程控制结构

1.range()函数的使用

range():用于生成一个整数序列

创建range对象的三种方式
Python程序流程控制结构
代码:

# 第一种创建方式  range(stop)range(10)print(range(10))  # range(0,10) 返回值是一个迭代器对象 默认从0开始,默认步长为1print(list(range(10)))  # 用于查看range对象中的整数序列 list-->列表# 第二种创建方式 range(start, stop)print(range(0, 10))# 第三种创建方式 range(start,stop,step)print(range(0, 10, 1))

range()函数的返回值是一个迭代器对象

range类型的优点 :不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,因为仅仅需要存储start,stop和step,只有当用到range对象时,才会去计算序列中的相关元素

'''内置函数 range(start(开始)未指定从0开始, stop(结束), step(步长)未指定步长为1)'''r = range(1, 10, 2)print(r)print(list(r))  # 列表 [1, 3, 5, 7, 9]print(tuple(r))  # 元组 (1, 3, 5, 7, 9)print(set(r))  # 字典 {1, 3, 5, 7, 9}

innot in 判断整数序列中是否存在(不存在)指定的整数

'''判断指定整数在序列中是否存在 in, not in'''print(3 in r)  # Trueprint(4 in r)  # Falseprint(3 not in r)  # Falseprint(4 not in r)  # Truefor value in range(10):    print(value, end=' ')

2.遍历循环for-in

for-in循环

  • in表达从(字符串、序列等)中依次取值,又称为遍历
  • for-in遍历的对象必须是可迭代对象

for-in的语法结构

for  自定义的变量  in 可迭代对象:      循环体

for-in的执行图
Python程序流程控制结构

# for in循环# in 表达是依次 从 (字符串,序列等) 中依次取值,又称遍历# for in遍历对象必须是可迭代对象'''for in 语法结构'''# for 自定义变量 in 可迭代对象:#    循环体for i in 'hello':    print(i, end=' ')print('')for i in range(10):    print(i, end=' ')print('')# 在循环体中如果不需要使用到自定义变量,可将自定义变量写为下划线('_')for _ in range(3):   # 3表示次数    print('hello')

使用for循环 计算1-100之间的偶数和

# 使用for循环 计算1-100之间的偶数和sum = 0for item in range(101):    if item % 2 == 0: sum += itemprint('1-100之间的偶数和为:', sum)

输出100-999之间的水仙花数

'''输出100-999之间的水仙花数  这个数的个位上的三次方 + 十位上的三次方 + 百位上的三次方  = 这个数'''for item in range(100, 1000):    ge = item % 10    shi = item % 100 // 10  # item//10%10    bai = item // 100    if item == ge**3+shi**3+bai**3: print(item)

3.无限循环while

语法结构

while  条件表达式:条件执行体(循环体)

四步循环法:

  1. 初始化变量
  2. 条件判断
  3. 条件执行体(循环体)
  4. 改变变量
  5. 打印输出

计算0-4之间的累加和

a = 0  # 1.初始化变量s = 0while a <= 4:  # 2.条件判断    s += a  # 3.条件执行体    a += 1  # 4.改变变量    print(s)  # 5.打印输出

选择结构的if与循环结构while的区别

  • If是判断一次,条件为True执行一行
  • while是判断N+1次,条件为True执行N

4.循环控制break和continue

循环结构有两个辅助循环控制的保留字:breakcontinue

4.1break

break用来跳出最内层forwhile循环,脱离该循环后程序继续执行循环后续代码,通常与 分支结构 if 一起使用。

例:从键盘录入密码,最多录入三次,如果正确就结束循环

# for 循环for _ in range(3):  # range()函数可以用作for循环的循环次数 3 表示for执行了3次    pwd = '888'    a = input('请输入密码:')    if a == pwd: print('密码正确') break    else: print('密码错误,请重新输入密码')# while 循环,四步循环法a = 0while a < 3:    '''条件执行体(循环体)'''    b = '888'    pwd = input('请输入密码:')    if pwd == b: print('密码正确') break    else: print('密码错误')    a += 1

4.2continue

continue语句用来结束当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环,进入下一次循环,通常与分支结构 if 一起使用

例:要求输出1-50-之间所有5的倍数

# for 循环for i in range(1, 51):    if i % 5 == 0: print(i)# while 循环a = 1while a <= 50:    if a % 5 == 0: print(a)    a += 1# continue 语句for item in range(1, 51):    if item % 5 != 0: continue    print(item)

5.嵌套循环

循环结构中又嵌套了另外的完整的循环结构,其中内层循环做为外层循环的循环体执行。

例1:打印一个三行四列矩形

for _ in range(3):    for _ in range(4): print('-', end='\t')    print()

例2:输出乘法口诀表

for i in range(1, 10):    for j in range(1, i+1): print(i, 'x', j, '=', i*j, end='\t')    print()

Python程序流程控制结构

四、总结

本节学习了Python程序的控制结构:顺序结构、分支结构、循环结构。