------------------------------函数相关---------------------------
-
return
-
默认返回值为None
-
返回函数的值
-
终止代码的执行
-
可以返回任意类型
-
当函数有返回值时,调用函数时必须有一个新的变量来接受,这时才返回return的值
def fun(): return 5, 8 ,'yang' a=fun() print(a)#不加括号时,默认返回元组
-
-
函数有几个形参就应该有几个实参,不然无法运行
#练习1 def func(name,age): a = 123 b =456 d =789 print(a) return (111) a = func(1,2)#返回值为123 #练习2 def func(name,age): a = 123 b =456 d =789 print(a) return (111) a = func(1,2) print(a) #返回值为123 111
- 在进行强制转换的时候(列表、元组、集合),如list();其相当于先对其中的元素进行循环,再逐次进行添加,
- int类型不可进行强制转换,因为其为不可迭代对象
a = 'hsdhj' b = (1,2,3) c ={'name':'yang','age':'18'} print(list(a),list(b),list(c)) #其结果为: ['h', 's', 'd', 'h', 'j'] [1, 2, 3] ['name', 'age']
- 三元运算与函数的 return相结合
def fun(a,b): return a if a > b else b v = fun(1,2) prin(v)
函数参数
-
位置传参
-
关键字传参:位置可变
-
关键字传参和位置传参可以混合使用(位置参数应放在前面,关键字参数放在后面,合起来等于总参数的个数),比如:打开文件时
-
默认参数:可传可不传,传了就覆盖,不传时就是默认值,在设定默认参数时,不可变类型随便用,可变类型,坑!
-
*args 万能参数(打散)
- 可以接受任意个参数,并将参数转化为元组
- 不支持关键字传参
- 可以与位置传参混用
- 与关键字传参时,关键字传参必须在后面
def fun(*args):#形参之前加*,可以传入多个参数,即不限制 print(args) b = fun(*[1,2,3,4,5],)#前面不加*即当做一个元组,加了*即将其打散放入
-
**kwwargs
-
只能用关键字传参
-
可接受任意个参数,并将参数转化为字典
-
单个*例子
-
ef fun(**kwargs): print(kwargs) b = fun(k1 = 1,yangf='zi')
-
两个**例子:整体把字典复制过去
-
def fun(**kwargs): print(kwargs) b = fun(**{'ke':'yam','li':'yang'})
-
-
两个参数混用
-
def fun(*args,**kwargs): print(args,kwargs) b = fun(*[1,2,3,4],k1='yang',v2='li')
-
-
函数的参数传入的是一个地址
v = [11,22,33,44] def funs(a): print('外',id(a)) print('内',id(v)) funs(v) #其输出的结果是一样的