第五章
1.函数的定义与使用
- 函数定义时,所指定的参数是一种占位符
- 函数定义后,如果不经过调用,不会被执行
- 函数定义时,参数是输入、函数体是处理、结果是输出 (IPO)
局部变量和全局变量
- 基本数据类型,无论是否重名,局部变量与全局变量不同
- 可以通过global保留字在函数内部声明全局变量
- 组合数据类型,如果局部变量未真实创建,则是全局变量
lambda函数
lambda函数返回函数名作为结果
<函数名> = lambda <参数>: <表达式>
等价于
def <函数名>(<参数>) : <函数体> return <返回值>
>>> f = lambda x, y : x + y >>> f(10, 15) 25 >>> f = lambda : "lambda函数" >>> print(f()) lambda函数
谨慎使用lambda函数
- lambda函数主要用作一些特定函数或方法的参数
- lambda函数有一些固定使用方式,建议逐步掌握
- 一般情况,建议使用def定义的普通函数
实例:七段数码管绘制(代码见python-examples)
基本思路
- 步骤1:绘制单个数字对应的数码管
- 七段数码管由7个基本线条组成
- 七段数码管可以有固定顺序
- 不同数字显示不同的线条
- 步骤2:获得一串数字,绘制对应的数码管
- 步骤3:获得当前系统时间,绘制对应的数码管
- 使用time库获得系统当前时间
- 增加年月日标记
- 年月日颜色不同
理解方法思维
- 模块化思维:确定模块接口,封装功能
- 规则化思维:抽象过程为规则,计算机自动执行
- 化繁为简:将大功能变为小功能组合,分而治之
2.代码复用与函数递归
代码复用
函数递归
函数递归的两个关键特征
- 链条:计算过程存在递归链条
- 基例:存在一个或多个不需要再次递归的基例
函数递归实例:字符串反转、斐波那契数列、汉诺塔
模块4:PyInstaller库的使用
将.py源代码转换成无需源代码的可执行文件
#(cmd命令行)
pyinstaller -F <文件名.py>
使用举例
pyinstaller –i curve.ico –F SevenDigitsDrawV2.py
PyInstaller库常用参数
参数 | 描述 |
---|---|
-h | 查看帮助 |
–clean | 清理打包过程中的临时文件 |
-D, –onedir | 默认值,生成dist文件夹 |
-F, –onefile | 在dist文件夹中只生成独立的打包文件 |
-i <图标文件名.ico> | 指定打包程序使用的图标(icon)文件 |