1. 函数的概念
概念
写了一段代码实现了某个小功能; 然后把这些代码集中到一块, 起一个名字; 下一次就可以根据这个名字再次使用这个代码块, 这就是函数
作用
方便代码的重用
分解任务, 简化程序逻辑
使代码更加模块化
函数分类
内建函数
三方函数
自定义函数
2. 函数的基本使用
简单定义
def 函数名 ():
函数体
函数的调用
函数名 ()
3. 函数的参数
单个参数
场景
需要动态的调整函数体中某一个处理信息
则可以, 以参数的形式接收到相关数据
定义
def 函数名 (参数名称):
函数体
函数体中, 可以直接以变量的方式使用该参数
函数的调用
函数名 (参数值)
形参和实参的概念
上述函数定义中, "参数名称" 即为形参;
在调用函数的时候, 传递的真实数据, 即为实参
多个参数
场景
需要动态的调整函数体中多个处理信息时
则可以以 逗号 做分割, 接收多个参数
定义
def 函数名 (参数名称 1, 参数名称 2):
函数体
函数体中, 可以直接以变量的方式使用所有参数
调用
方式 1
函数名 (参数 1, 参数 2, 参数 3...)
形参和实参一一对应
方式 2
函数名 (参数名称 1 = 参数 1, 参数名称 n = 参数 n...)
可以指明形参名称
称为 "关键字参数"
不需要严格按照顺序
不定长参数
场景
如果函数体中, 需要处理的数据, 不确定长度
则可以以不定长参数的方式接收数据
方式 1
定义
def 函数名 (*args):
元组
函数体
函数体中, 可以直接以元组变量的方式使用该参数
使用
函数名 (参数 1, 参数 2, 参数 3...)
方式 2
定义
def 函数名 (**dic):
字典
函数体
函数体中, 可以直接以字典变量的方式使用该参数
使用
函数名 (参数名称 1 = 参数 1, 参数名称 2 = 参数 2...)
参数拆包
装包
把传递的参数, 包装成一个集合, 称之为 "装包"
拆包
把集合参数, 再次分解成单独的个体, 称之为 "拆包"
缺省参数
场景
当我们使用一个函数的时候, 如果大多数情况下, 使用的某个数据是一个固定值, 或者属于主功能之外的小功能实现;
则可以使用默认值
这种参数, 称为 "缺省参数"
定义
def 函数名 (变量名 1 = 默认值 1, 变量名 2 = 默认值 2):
函数体
函数体中, 即使外界没有传递指定变量, 也可以使用, 只不过值是给定的默认值
使用
函数名 (变量 1, 变量 2)
此处如果是缺省参数, 则可以不填写
参数注意
值传递和引用传递
值传递
是指传递过来的, 是一个数据的副本;
修改副本, 对原件没有任何影响
引用传递
是指传递过来的, 是一个变量的地址
通过地址, 可以操作同一份原件
但是注意
在 Python 当中, 你没得选, 只有引用传递 (地址传递)
但是
如果数据类型是可变类型, 则可以改变原件
如果数据类型是不可变类型, 则不可以改变原件
学习地址:
撩课 - Python 大数据 + 人工智能 1
撩课 - Python 大数据 + 人工智能 2
撩课 - Python 大数据 + 人工智能 3
撩课 - Python 大数据 + 人工智能 4
撩课 - Python 大数据 + 人工智能 5
撩课 - Python 大数据 + 人工智能 6
撩课 - Python-GUI 编程 - PyQt5
来源: http://www.jianshu.com/p/d1ae17a30b5a