5.1 程序的基本结构
程序的3种基本结构为:顺序结构,分支结构和循环结构。
- 顺序结构的程序按语句的先后顺序依次执行各条语句,通常程序默认为顺序结构
- 分支结构指程序根据条件执行不同的代码块。分支结构又可分为单分支结构,双分支结构和多分支结构
- 循环结构指程序根据条件重复执行同一个代码块
5.2 分支结构
5.2.1 单分支结构
-
单分支if语句的基本结构
if 条件表达式: 判断条件为 True,会执行的代码 判断条件为 True,会执行的代码 ... 顶格书写的代码,代表和 if 判断没有关系 在 python 中使用缩进,代替代码的层级关系, 在 if 语句的缩进内,属于 if 语句的代码块(多行代码的意思)
5.2.2 双分支结构
-
双分支if语句的基本结构
if 判断条件: 判断条件为 True,会执行的代码 判断条件为 True,会执行的代码 ... else: 判断条件为 False, 会执行的代码 判断条件为 False, 会执行的代码 ..... if 和 else 只会执行其中的一个,
5.2.3 多分支结构
-
多分支if语句的基本结构
if 判断条件1: 判断条件1成立,执行的代码 elif 判断条件2: 判断条件1不成立,判断条件2 成立,会执行的代码 else: 判断条件1和判断条件2都不成立,执行的代码 -------- if 判断条件1: 判断条件1成立执行的代码 if 判断条件2: 判断条件2 成立执行的代码
5.2.4 if…else 三元表达式
-
if…else 三元表达式的基本结构
if 判断条件1: 表达式1 else: 表达式2 判断条件成立,执行表达式 1, 条件不成立,执行表达式 2 变量 = 表达式1 if 判断条件 else 表达式2 # 推荐使用扁平化代码 变量最终存储的结构是: 判断条件成立,表达式1的值, 条件不成立,表达式2的值
5.3 循环结构
Python 使用for语句和while语句实现循环结构
5.3.1 遍历循环
-
for循环基本语法
for 变量 in 字符串: 代码 for 循环也称为 for 遍历,会将字符串中的字符全部取到
-
使用range()函数
可以使用range()函数来生成多个整数的range对象,基本格式如下 range(end) range(start,end[,step]) 只指定一个参数end时,生成的整数范围为:0~end-1。指定两个参数(start和end)时,生成的整数范围为:start~end-1。整数之间的差值为step,step默认为1。
-
循环打印直角三角形
5.3.2 无限循环
-
while语句循环的基本结构
while 判断条件: 判断条件成立,执行的代码 判断条件成立,执行的代码 不在 while 的缩进内,代表和循环没有关系 while 和 if 的区别: if 的代码块,条件成立,只会执行一次 while 的代码块,只要条件成立,就会一直执行
-
无限循环
while True: # 无限循环 代码 死循环: 相当于是代码的 bug,错误 无限循环: 人为书写的,故意这样写的
5.3.3 循环控制
-
break
break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行
-
continue
continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环
5.4 异常处理
异常指程序在运行过程中发生的错误,异常会导致程序意外终止。异常处理可捕捉程序中发生的异常,执行相应的处理代码,避免程序意外终止。程序中的语法错误不属于异常。
-
捕获单个异常
-
捕获多个异常
-
打印异常信息
-
捕获所有异常
try: 可能发生异常的代码 except: # 缺点, 不能获取异常的描述信息 发生异常执行的代码 ============== try: 可能发生异常的代码 except Exception as e: 发生异常执行的代码 print(e) pass # Exception 是常见异常类的父类, ZeroDivisionError --> ArithmeticError --> Exception --> BaseException ---> object ValueError --> Exception --> BaseException ---> object
-
异常的完整结构
try: 可能发生异常的代码 except Exception as e: 发生异常执行的代码 print(e) else: 代码没有发生异常,会执行 finally: 不管有没有发生异常,都会执行
-
异常的传递
是 python 异常处理的底层机制,是原理层面上的,不需要我们自己写代码实现,是 python 已经实现好的. 异常传递: 当一行代码发生异常之后,会向外层将这个异常进行传递,指导被捕获或者程序报错为止. 1. try 嵌套 2. 函数嵌套
-
抛出自定义异常
程序代码为什么会报错? 因为不符合语法, 因为 python 的作者在代码中使用了 if 判断,如果除数为 0 ,就会在代码中抛出异常错误, 抛出异常: raise 异常对象 # 当程序代码遇到 raise 的时候,程序就报错了 异常对象 = 异常类(参数) 抛出自定义异常: 1. 自定义异常类,继承 Exception 或者 BaseException 2. 选择书写,定义 __init__方法,定义__str__ 方法 3. 在合适的时机抛出异常对象即可