
第四章_流程控制
模块与包
模块
在Python可理解为对应于一个文件。在创建了一个脚本文件后,定义了某些函数和变量。你在其他需要这些功能的文件中,导入这模块,就可重用这些函数和变量。
包
包,通常总是一个目录,可以使用import导入包,或者from + import来导入包中的部分模块。包目录下为首的一个文件便是 init.py。然后是一些模块文件和子目录,假如子目录中也有 init.py 那么它就是这个包的子包了。
import 包名#文件名不需要写后缀.py
-
函数返回一个range object
range函数是一个容器,不再返回列表,可通过list()、tuple()转化为列表或元组
例子:
r1 = range(1,5,2)
- r_2 = range(1,5)
r_3 = range(5)
import numpy as npar_1 = np.arange(1,2,0.2)ar_1
流程控制
程序流程图
概念
一种表达程序控制结构的方式,主要用于关键部分的程序分析和过程描述。由一系列图形、流程线和文字说明组成
7种元素
起止框
- 表示程序逻辑的开始或结构
- 处理框
- 表示一组处理过程,对应于顺序执行的程序逻辑
- 判断框
- 表示一个判断条件,根据判断结果选择不同执行路径
- 输入输出框
- 表示程序种的数据输入或结果输出
- 注释框
- 表示程序的注释
- 流向线
- 表示程序的控制流,以带箭头的直线或曲线表达程序的执行路径
连接点
顺序结构
- 线性顺序
- 分支结构(逻辑结构)
- 概念
- 根据条件判断结果而选择不同方向向前执行的一种运作方式
- 种类
- 单分支结构
- if 条件: 语句块
- 条件为产生True或False的语句,结果为True执行,False则跳过语句块。语句块可以是多条语句。
- 多分支结构
- 条件成立做事件A,条件不成立都不做
- if 条件表达式1:<缩进>事件Aelif 条件表达式2:<缩进>事件Belif 条件表达式3:<缩进>事件C……….else:<缩进>事件N
- 注意同一逻辑下语句缩进相同
- else子句可选
- 列表推导式(条件表达式)
- 列表名 = [x for x in data]
- 遍历后面的可迭代对象,然后按照for前的表达式进行运算,生成最终的列表
- 列表名 = [x for x in data if condition]
- for遍历每层循环紧跟着进行条件判断
- 列表名 = [exp1 if condition else exp2 for x in data]
- for遍历循环判断符合if后条件表达式则结果exp1,不符合则exp2
- 列表名 = [x for x in data]
- 字典推导式
- 集合推导式
- 单分支结构
- 多个条件逻辑组合
- and
- 多个条件“与”
- 多个条件都满足才True,有一条不满足则False
- 多个条件“与”
- or
- 多个条件“或”
- 任意一个满足则True,都不满足则False
- 多个条件“或”
- not
- 单个条件“否”
- and
- 概念
循环结构
- 概念
- 根据条件判断结构向后执行(回到前面的步骤)的运行方式
- 种类
- while循环
- true时循环,否则退出循环
- while 判断条件:<缩进>代码块
- for循环
- 常用于遍历序列(list、tuple、string、range)、集合(set)和映射对象(dict)。字符串、文件、range()函数也是可迭代对象
- 注意range()函数左闭右开
- range(5)即0到4的索引范围遍历
- 注意range()函数左闭右开
- for <临时变量> in 可迭代对象:<缩进>代码块
- for i in range(start,stop[,step])
- for i in range(stop)
- 扩展结构
- for-else结构
- for循环正常执行完成之后执行else中内容
- for <临时变量> in 可迭代对象:<缩进>代码块else:<缩进>代码块
- for-else结构
- 常用于遍历序列(list、tuple、string、range)、集合(set)和映射对象(dict)。字符串、文件、range()函数也是可迭代对象
- 循环控制语句
- while循环
- 概念
程序的异常处理
- try…except语句
- 2个循环控制符
- break
- 结束当前循环
- continue
- 结束当前循环的当次循环过程
- break
- 2个循环控制符
- try: blockexcept(Exception) as e: blockexcept Keyerror as e: block except Nameerror as e: block else: blockfinally: block
- as 子句是用于绑定错误对象的变量,可以省略
- except 子句可以有一个或多个,但至少要有一个. 一般的需要写清楚需捕获异常的类型,见上面的常见错误异常链接, 定制什么类型异常,能捕获相应的异常,但是没有指定的异常的话还是会报错的。 不过有一个万能异常:Exception
- else子句最多只能有一个,也可以省略不写. else子句的语句将在此try语句没有发生异常时被执行
- finally子句最多只能有一个,也可以省略不写. finally子句的语句在任何情况下都会被执行
- try…except语句
