1. 函数的定义
使用函数可以提高代码的复用和让代码更加简洁,定义函数使用关键字:def
例:
def len():
len("string")
2. 返回值
-
没有返回值返回(默认返回None)
''' 不写 return 只写 return:可以提起结束函数的执行 return None ---不用 ''' def fun(): sum = 0 for i in range(5): sum += i if i == 3: return print("end") fun()
-
有一个返回值
#可以返回任何数据类型 def my_len(s): return len(s)
-
返回多个值
#用一个变量接收: 得到的是一个元组(防止函数返回值被修改而使用不可变的数据类型) def fun(): return 1,2,3 tup= fun() #tup = (1,2,3) #用多个变量接收(变量数应与返回值数对应) def fun(): return 1,2,3 a,b,c = fun()
-
补充:解包
#Python中元组元组、列表、字典可以解包的 #元组 >>> a,b=(1,2) >>> a 1 >>> b 2 #列表 >>> a,b=[4,5] >>> a 4 >>> b 5
3. 参数
-
形参
默认顺序:位置参数 > *args > 默认参数 > **kwargs
#位置参数:必须传 def fun(a,b): pass fun(1,2) #*args (动态参数):可以接收任意多个位置参数 def fun(*args): pass fun(45,96,9) #默认参数 : 可以不传 def open(file, mode='r', buffering=None, encoding=None): pass open("C:/test.txt",encoding="utf-8") #**kwargs(动态参数): 可以接收多个关键字参数 def fun(**kwargs): pass fun(name="xiao",age=22)
动态参数的另一种传参方式:
#1. *args 接收多个位置参数 def fun(*args): pass #元组 tu = (4,5,6,2,3,1) fun(*tu) #列表 li =[4,5,65,4] fun(*li)#将列表中每一个元素依次传给*args #2. **kwargs 接收多个关键字参数 def fun(**kwargs): pass #字典 dic ={"key":"value"} fun(**dic)
-
实参
#位置传参(站在实参角度):必须传 def fun(a,b,c): pass fun(1,3,6) #关键字传参(站在实参角度):关键字 = 值 可以不传,不能一个变量传多个值 def fun(mode = "r",permit ="x"): pass fun(permit="r",mode="w") #混合传参:必须先按照位置参数传参,再按照默认关键字传参。 def fun(age,sex ="男",home ="广东"): pass fun(23,home="深圳",sex="女")
4. 函数注释。
def fun():
'''
这个函数实现了什么功能
参数1:干嘛干嘛的
参数2:干嘛干嘛的
:return:函数的返回值
'''
pass