1. 函数和过程
过程:就是没有返回值的函数
在python中函数和过程是一样的,没有区别,如果没有返回值,python会自动赋值为None
2. 总结:
返回值=0:返回None(即没有写返回值时,python自动赋值为None)
返回值=1:返回object(即返回一个值时,其类型为object)
返回值>1:返回tuple(即有多个返回值时,其类型为tuple)
3. 形参和实参
形参:形参只有在被调用时才能分配内存单元,调用结束后,即刻释放所分配的内存单元
实参:可以是常量、变量、表达式、函数等
混搭传值:位置参数必须要在关键字参数左边,且不能重复赋值
def test(x,y,z):
print(x,y,z)
v=test(1,2,z=3)
默认参数
参数组:(非固定长度的参数)**字典 *列表
def test(x, *args):
print(x)
print(args)
v = test(1, 2, 3, 4, 5, 6)
print的args=(2,3,4,5,6)当作元组来处理,但是传入的时候args将多传入的值当作列表处理
def test(x, **kwargs):
print(x)
print(kwargs)
v = test(1, y=2, z=3)
# print结果kwargs,为字典
output:
1
{'y': 2, 'z': 3}
4. 全局变量与局部变量
函数中可以使用global来表示以下使用和改变的是全局变量
NAME="ALEC"
def TEST():
global NAME
NAME='sky'
print("change name",NAME)
output:
change name ALEC
如果函数的内容中无global关键字,优先读取局部变量,能读取全局变量,无法对全局变量进行赋值,NAME=“fff”
但是对于可变类型,可以对内部元素进行操作如append等
如果函数中有global关键字,便来那个本质上就是全局的那个变量,可读取可赋值
执行顺序:(需要补一个)
全局变量练习:
name="佩奇"
def weihou():
name="乔治"
def weiweihou():
global name
# nonlocal name #nonlocal代指上一级的name
name = "苏茜"
weihou()
print(name)
weiweihou()
print(name)
output:
佩奇
苏茜
5. 风湿理论之函数即变量
在执行过程中,函数即变量
def test():
pass
name="wendy"
意思是,创建函数和创建变量name一样,在内存中都是相当于门牌号是test、name,然后房间内是函数体、字符串wendy