函数分类
函数分为数学定义的函数与python中的函数。
- 初中数学函数定义:在一个变化过程中,如果有两个边路x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数。
例如:y=2*x - python中函数定义:函数式逻辑结构化和过程化的一种编程方法。
函数的定义
def 函数名(参数):
...
函数体
...
返回值
函数的定义主要有如下要点:
- def:表示函数的关键字
- 函数名:函数的名称,日后根据函数名调用函数
- 函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等…
- 参数:为函数体提供数据
- 返回值:当函数执行完毕后,可以给调用者返回数据
1、返回值
函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。
def 发送短信():
发送短信的代码...
if 发送成功:
return True
else:
return False
while True:
# 每次执行发送短信函数,都会将返回值自动赋值给result
# 之后,可以根据result来写日志,或重发等操作
result = 发送短信()
if result == False:
记录日志,短信发送失败...
函数返回值个数不同,返回类型不同:
- 返回值数=0:返回none
- 返回值数=1:返回object
- 返回值数>1:返回tuple
另:过程就是没有返回值的函数
2、参数
根据函数参数形式可以分为形参和实参两种。
- 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
- 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应该预先用赋值,输入等办法使参数获得确定值。
根据参数实现可以分为无参数实现、有参数实现
根据函数参数传递过程可以分为普通参数、默认参数、动态参数
普通参数:
# ######### 定义函数 #########
# name 叫做函数func的形式参数,简称:形参
def func(name):
print(name)
# ######### 执行函数 #########
# 'tom' 叫做函数func的实际参数,简称:实参
func('tom')
默认参数:
def func(name, age = 18):
print("%s:%s" %(name,age))
# 指定参数
func('tom', 19)
# 使用默认参数
func('alex')
注:默认参数需要放在参数列表最后
动态参数1:**{字典},*[列表]
def test(x,*args):
print(x)
print(args)
test(1,2,3,4,5,6,7)
test(1,['x','y','z'])
test(1,*['x','y','z'])
#执行结果如下:
1
(2, 3, 4, 5, 6, 7)
1
(['x', 'y', 'z'],)
1
('x', 'y', 'z')
动态参数2:
def func(x,**kwargs):
print(x)
print(kwargs)
func(1,y=2,z=3)
#执行结果如下:
1
{'y': 2, 'z': 3}
动态参数3:
def func(*args, **kwargs):
print args
print kwargs