一、函数基础(基中基)
1.定义函数
def 函数名(参数):
代码1
代码2
.....
2.调用函数
函数名(参数)
3.函数的参数
# example
def add(a, b):
result = a + b
print(result)
add(1, 2)
4.函数的返回值
def subject():
return 'sweet'
needs = subject()
print(needs) # sweet
5.函数的说明文档
5.1定义函数的说明文档
def 函数名(参数):
'''说明文档的位置'''
代码
.....
5.2查看函数说明文档
help(要查找的函数名)
6.函数嵌套调用
'''
----------
----------
----------
----------
'''
def line():
print('-' * 10)
def lines(num):
i = 0
while i < num:
line()
i += 1
lines(4)
二、函数进阶
1.变量作用域
1.1局部变量
作用:在函数体内部 临时保存数据,当函数调用完成时,销毁局部变量。
1.2全局变量
定义在函数定义前
- 修改全局变量
a = 100 # 全局变量
print(a) # 100
def textA():
print(a) # 100
def textB():
a = 200
print(a) # 200 → 此时的a是局部变量
textA()
textB()
print(a) # 100
用global关键字 —— 声明a是全局变量,即可修改
a = 100 # 全局变量
print(a) # 100
def textA():
print(a) # 100
def textB():
# global 关键字声明a是全局变量
global a
a = 200 # → 此时的全局变量a被修改
print(a) # 200
textA()
textB()
print(a) # 200
2.函数返回多个值
def return_num():
return 1,2
print(return_num()) # (1, 2)
3.函数参数(详)
3.1位置参数
def id(name, age, gender):
print(f'姓名:{name},年龄:{age},性别:{gender}')
id('Justin', 25, 'man') # 姓名:Justin,年龄:25,性别:man
注:传递和定义的参数的顺序及个数必须一致,否则报错
3.2关键字参数
def id(name, age, gender):
print(f'姓名:{name},年龄:{age},性别:{gender}')
id('Justin', age = 25, gender = 'man') # 姓名:Justin,年龄:25,性别:man
id('Justin', gender = 'man', age = 25) # 姓名:Justin,年龄:25,性别:man
注:如果有位置参数,位置参数必须写在关键字参数前面(未使用“键=值”形式的参数)
3.3缺省参数(默认参数)
def id(name, age, gender = 'woman'):
print(f'姓名:{name},年龄:{age},性别:{gender}')
id('Justin', 25, 'man') # 姓名:Justin,年龄:25,性别:man
id('Tom', age = 20, gender = 'man') # 姓名:Tom,年龄:20,性别:man
id('Lucy', 19) # 姓名:Lucy,年龄:19,性别:woman
注:所有位置参数必须出现在默认参数前,包括函数的定义和调用
3.4不定长参数(可变参数)
- 包裹位置传递