第五章

1.函数的定义与使用

  • 函数定义时,所指定的参数是一种占位符
  • 函数定义后,如果不经过调用,不会被执行
  • 函数定义时,参数是输入、函数体是处理、结果是输出 (IPO)
  1. 局部变量和全局变量

    • 基本数据类型,无论是否重名,局部变量与全局变量不同
    • 可以通过global保留字在函数内部声明全局变量
    • 组合数据类型,如果局部变量未真实创建,则是全局变量
  2. 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)文件