
函数参数的类型
不可变类型参数:整数、字符串、元组。
fun(a) 内部修改a的值,只是修改另一个复制的对象,不会影响a本身
可变类型:列表,字典。
如fun(la),则是将la真正的传过去,修改后的fun外部的la也会受到影响
不可变数据类型a = 10000print('a标量的id值--->',id(a))def num(b): print(b) # a和b的地址相同,因此值也是相同的 b = 200 print('修改后的b的id值--->', id(b)) print(b)num(a)'''a标量的id值---> 745969610000修改后的b的id值---> 490814384200'''
可变数据类型
print('outter_list',outter_list,id(outter_list))def func(inter_list): print('inter_list',inter_list,id(inter_list)) inter_list.append(4) print(inter_list)func(outter_list) #传递的是一个地址,所以才会变print(outter_list)"""st [1, 2, 3] 12221320inter_list [1, 2, 3] 12221320[1, 2, 3, 4][1, 2, 3, 4]"""

函数的返回值
格式
def 函数名(参数1,参数2,..........)
return 值
注意 1 在函数体的最后一个使用,关键字return 要返回的值
2 如果一个函数没有返回值,默认返回None
3 return有两个作用,一个是返回值,另一个是结束函数,可以结束整个方法
def sum_num(aa,bb): num3 = aa+bb print(id(num3))ret = sum_num(1,2) #定义一个变量ret,来接受函数的返回值,赋值给变量print(ret,id(ret))
拿到返回值后可以进行逻辑操作

例如:
if ret < 10: passelse: passdef func(c): print('func...') a = 10 b = c if b < a: return #可以结束整个方法 print('zzz') print('xxxx')func(11)print('程序结束了')结果:func...zzzxxxx程序结束了
返回None
返回None
def func(): print('func....')ret = func()print(ret)结果 func.... None
返回多个值
格式def fun(): a = '10' b = '20' return a,b ret = fun()print(ret) #多个值被组织成一个元组返回 因为可以用多个变量来接受元组中的内容 因此num1,num2 = fun()print(num1,num2,type(num1),type(num2))结果:('10', '20')10 20
注意:
1如果函数不写返回值,默认返回值None
2 return关键字有两个作用,一个是返回内容,另一个是结束此方法
3 return关键字后面不允许在写代码