【大模型2609·Python基础·03】流程控制结构:条件分支与循环迭代深度实战

【大模型2609·Python基础·03】流程控制结构:条件分支与循环迭代深度实战
kikock专栏导读:程序的核心在于逻辑驱动。本篇深度解析 Python 的顺序结构、标准输入输出格式化(包括工业级 f-string 写法),详细剖析单分支、双分支、多分支与分支嵌套,并结合经典案例演练 while/for 循环、循环嵌套、break、continue 与 pass 语句。
第4章 流程控制语句结构
4.1 顺序结构
按照程序正常的执行顺序,依次执行每条语句。
4.2 输入和输出语句
如果接收用户在键盘上输入一些字符,Python提供了一个input()函数,可以让用户输入字符串,并存放到一个字符串变量里。
1 | 字符串变量 = input("提示信息:") |
1 | # -----------输入语句---------- |
4.3 输出语句
4.3.1 普通输出
- 使用 print() 可将内容打印。
- 多个内容之间可以使用逗号隔开。
- 可以使用 sep = 来指定输出多个内容时,多个内容之间的分隔符,默认是空格。可以使用 end= 来控制 print() 以什么结尾,默认是
\n。
1 | # ------------普通输出-------------- |
4.3.2 格式化输出
1、字符串中使用 % 占位
| 格式符号 | 说明 |
|---|---|
| %d | 十进制整数 |
| %f | 浮点数,%.nf可指定显示小数点后n位 |
| %s | 字符串 |
| %o | 八进制整数 |
| %x | 十六进制整数 |
| %e | 科学计数法 |
1 | # -----------------%占位符----------------- |
2、字符串.format()
1 | # -----------------字符串.format()----------------- |
3、字符串.format()+数字格式化
: 后可以添加多个参数对数字格式化:
- 填充字符:例如以 * 填充空白,不写则默认以空格填充。
- 对齐方式:可选 < 、 ^ 、 > ,分别是左对齐、居中、右对齐。
- 数字长度:例如指定数字宽度为20,数字长度不足20则进行填充。
- 数字分隔符:可选 , 和 _ ,每3位进行分隔。
- 精度:例如.2f表示小数点后保留2位。
4、f字符串
- 字符串前加上一个 f ,字符串中的{}内写入变量名。
- {}内变量名后可以加上 = ,打印时会在变量值前加上 变量名=。
1 | # -----------------f字符串----------------- |
5、f字符串 + 嵌套{}转义
{}外再套一层{},即{{}},会转义,即此时{}中的变量名只是普通字符而已。
1 | # -----------------嵌套{{}}转义----------------- |
4.4 分支语句
4.4.1 单分支
1 | if 条件表达式: |
- Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
- if条件表达式后面必须加:
- 如果条件成立执行语句块1,否则不执行。语句块1必须有缩进,可以多行语句,以缩进来区分表示同一范围,缩进取消后,就不在分支范围了。
1 | num = 5 |
4.4.2 双分支
1 | if 表达式: |
- if条件表达式后面和else后面都必须加:
- 如果条件成立执行语句块1,否则执行语句块2。语句块1和2必须有缩进,可以多行语句,以缩进来区分表示同一范围,缩进取消后,就不在分支范围了。
1 | num = 5 |
4.4.3 多分支
1 | if 条件1: |
- if、elif、else后面别忘了加:
- 条件从上往下依次判断,上面的条件成立了,下面的条件就不看了
1 | from random import randint |
4.4.4 match-case语句
Python3.10新增了match case的条件判断方式,match后的对象会依次与case后的内容匹配,匹配成功则执行相应语句,否则跳过。其中_可以匹配一切。
1 | match x: |
案例需求:输入星期值,如果星期值是1-5,则输出工作日,如果星期值是6-7,则输出休息日,如果输入的是其他值,就提示输入有误!
1 | week = int(input("请输入星期值:")) |
4.4.5 嵌套
案例1
给定一个三位的状态码,左边第一位标识大小写状态(1-大写,0-小写),第二位标识输入法语言(1-简体中文,0-英语),第三位标识输入法模式(1-中文,0-英文)。
判断输入法的状态:
- 如果是大写状态,打印“大写状态”。
- 如果不是大写状态,判断输入法语言是“简体中文-微软拼音”还是“英语-美式键盘”。
- 如果是“简体中文-微软拼音”,判断是中文模式还是英文模式,并打印。
- 如果是“英语-美式键盘”,打印“英语-美式键盘”。
1 | state = 0b011 |
案例2
输入年月,输出改月总天数有几天
1 | year = int(input("请输入年:")) |
或
1 | year = int(input("请输入年:")) |
4.5 循环结构
在满足某个条件下,重复的执行某段代码。
4.5.1 while循环
1、基本语法格式:
1 | while ①表达式: |
判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。如果条件表达式一直成立,那称之为无限循环,也叫死循环。
执行过程:①成立->②->①成立->②->①成立->②->①成立->②->①不成立结束。
2、while-else语法格式:
while 后可以加上 else,当 while 表达式结果为 False 时会执行 else 中的语句。
1 | while ①表达式: |
执行过程:①成立->②->①成立->②->①成立->②->①成立->②->①不成立->③结束。
案例1
1 | # ------------输出5次我爱尚硅谷------------------ |
案例2
1 | # ------------输出1-100的偶数------------------ |
案例3
1 | # ------------模拟输出进度条------------------ |
案例4
1 | # ------------while-else------------------ |
4.5.2 for循环
Python 的 for 循环确实是语法糖,底层使用迭代器协议(关于迭代器后面章节会讲),可以用来遍历所有可迭代对象,如列表或字符串。
1、基本语法格式:
1 | for 临时变量 in 可迭代对象: |
- for是关键字,in是关键字,
- 临时变量是自己定义的,用来存储遍历出来元素的变量名字
- 可迭代对象是要遍历的序列
- 首先判断是否有下一个元素可以获取,如果有,则将元素取出,赋值给临时变量,执行语句1。
- 继续判断是否有下一个元素可以进行取出,直到将所有元素都取出,循环结束
2、for-else语法格式:
for 循环后也可以加上 else,循环结束后会执行 else 中语句。
1 | for 临时变量 in 可迭代对象: |
案例1:遍历字符串
1 | # -----------------遍历字符串--------------------- |
案例2:遍历列表
1 | # -----------------遍历列表--------------------- |
案例3:range函数
作用:函数可以生成数列,它返回一个可迭代对象。
语法:range([start,] stop[, step])
start: 生成序列的起始值–包含 默认0
stop:生成序列的结束值–不包含
step:生成序列的步长 默认为1
如果为正数:生成的序列是递增的,要求起始值 < 结束值
如果为负数:生成的序列是递减的,要求起始值 > 结束值
如果stop小于或等于 start且step为正数,或者stop大于或等于start且step为负数,range() 函数将生成一个空序列。
1 | # -------------range(10)产生0-9的数列--------------- |
4.5.3 continue
跳过当前循环块中的剩余语句,继续进行下一轮循环。一般写在if判断中。
1 | # -------------打印0-9,跳过偶数------------------ |
4.5.4 break
跳出当前for或while的循环体,一般写在if判断中。
如果for 或while循环通过break终止,循环对应的else 将不执行。
1 | # -------------打印0-9,遇到5结束------------------ |
4.5.5 pass
pass是空语句,是为了保持程序结构的完整性。pass不做任何事情,一般用做占位语句。
例如:在一个循环中,如果循环体为空,语法会提示报错,这个时候我们就可以使用pass占位
1 | for i in range(10): |














