函数
1.特点:
- 函数能提高应用的模块性和代码的重复利用率
- 一次定义多次调用
2.函数分为两个阶段:
- 定义阶段:不执行函数体,没有输出结果,只有经过调用阶段才执行定义的函数体代码,才有结果
- 调用阶段:调用阶段执行函数体返回结果
def func ():
函数体
3.函数的内存地址:
print(func) #打印的是函数的内存地址
4.函数的调用:
func() #调用函数
print(func()) #打印函数执行结果
5.函数的形参与实参
def func(name): #name就是函数定义的形参
print('my name is %s' %name) #格式化输出
func('bob') #'bob'就是函数调用时的实参
输出:
my name is bob
注意:函数定义了形参,调用时必须给函数传递实参否则会报错
函数定义时可定义多个形参,并且函数调用时都必须传参,否则会报错如:
def func(name,age):
print('my name is %s,my age is %s.'%(name,age))
func('bob','20')
输出:
my name is bob,my age is 20.
如果函数调用时传参顺序要一一对应,或者用以下格式:
func(name='bob',age='20')或func(age='20',name='bob')
6.args当函数有多个参数时,可以考虑用args,但不可用关键字传参
def func(*args):
print(args[0])
print(args[1])
func('aaa','bbb')
输出:
aaa
bbb
7.kwargs当函数有多个参数时,可以考虑kwargs,可以用关键字传参,不可直接传参
def func(**kwargs):
print(kwargs)
func(name='bob',age='23')
输出:
{'name': 'bob', 'age': '23'}
8.*args和**kwargs可以联合使用
def func(*args,**kwargs):
print(args)
print(kwargs)
func('aaa','bbb',name='bob')
输出:
('aaa','bbb')
{'name': 'bob'}