python自学笔记5 函数
函数基础
默认参数
全局变量和局部变量
和C语言中的差不多,但是可以在函数中申明全局变量
使用关键字global
raise语句中断流程
raise语句可以用来抛出错误信息
assert 语句
一般用于开发调试,用于在早期发现检查问题
帮助文档
在 Python 中,可以使用 docstring 来编写函数的帮助文档,即在函数定义的第一行或第二
行写入字符串来描述函数的作用、参数、 返回值等信息。
通常使用三个单引号(‘’') 或三个双引号(“”")来表示 docstring,如代码 11 所示。
如果要查询这个文档,可以使用 Python 内置的 help() 函数或者 doc 属性来查看。
自定义线性代数函数
- 产生全 0 矩阵: 一层 for 循环
- 产生单位矩阵矩阵: 一层 for 循环
- 产生对角方阵: 一层 for 循环
- 提取对角线元素: 一层 for 循环
- 计算方阵迹
- 判断矩阵是否对称: 两层 for 循环
- 矩阵行列式
- 矩阵逆
递归函数
与C语言中基本相同
位置参数,关键字参数
在python中有三种不同的传参方法:
代码示例如下图所示:
在自定义函数时,可以使用 / 和 * 来声明参数传递方式:
- 在 Python 的函数定义中,正斜杠 /之前的参数是位置参数;
- 在正斜杠 / 和星号 * 之间位置或关键字传递都可以;
- 在星号 * 之后必须按关键字传递。
代码示例 :
自定义函数中, a 和 b 为位置参数, c 为位置/关键字参数, x 为关键字参数。
另一种方式是采用拆包的方法传参
- *是拆列表,位置传参
- **是拆字典,关键字传参
代码示例:
使用*args 和**kwargs
在 Python 中,自定义函数时, *args 和 **kwargs 是用于处理不定数量的参数的特殊语法。
这两个关键字可以分开使用,也可以一起使用。
代码示例:
这是一个根据操作提示计算总体方差、总体标准差、样本方差、样本标准差的代码。
匿名函数
语法格式:lambda arguments: expression
匿名函数常与map()配套使用。
在 Python 中, map()是一种内置的高阶函数,它接受一个函数和一个可迭代对象作为输入,将函数应用于可迭代对象的每个元素并返回一个可迭代对象,其中每个元素都是应用于原始可迭代对象的函数的结果。
代码示例:
构造模块库
自定义模块
将函数打包成py文件
示例;
import mathdef area(radius):'''计算圆面积输入:radius:半径输出:area:面积'''area = math.pi * radius**2return areadef circumference(radius):'''计算圆周长输入:radius:半径输出:circ:周长'''circ = 2 * math.pi * radiusreturn circ
将上述代码打包为circle.py文件
利用下面的代码可以调用这个模块
import circle as ccr = 5
area = cc.area(r)
circumference = cc.circumference(r)print("半径为", r, "的圆的面积是", area)
print("半径为", r, "的圆的周长是", circumference)
自定义库
出来库中实现功能的个个模块外还需要两个文件:
- 在 mylibrary 文件夹中创建一个名为 setup.py 的文件, 引入 setuptools 库,并使用setup()函数来描述库的信息,包括名称、版本、作者、依赖、模块文件等信息。
- 在 mylibrary 文件夹中创建一个名为__init__.py 的空文件 (内容空白),用于声明这个文件
夹是一个 Python 包。
学习别人的代码
在python中调用的各种模块都可以查看源码和说明进行学习.
查看源码
第一种方法:
代码示例:
import numpy
?? numpy.polyfit
即可查看numpy.polyfit模块的源码。
第二种方法:
第二种方法是直接进入 Python 官方的 GitHub 查看源代码文件
第三种方法:
第三种方法是找到本地安装地址
查看文档
import numpy
help(numpy.polyfit)
可以查看numpy.polyfit模块的文档