函数
1、函数的初识
1)my_len() # 函数名+() 执行函数
def 关键字 函数名(设定与变量相同):
函数体
#函数的返回值 return 1,遇到return,结束函数。 def func1(): print(11) print(22) return print(333) print(444) func1() 2,给函数的调用者(执行者)返回值。 无 return 返回None return 不写 或者 None 返回None return 返回单个数. return 返回多个数,将多个数放在元组中返回。
s1 = 'fdsgdfkjlgdfgrewioj' # def my_len(): # count = 0 # for i in s1: # count += 1 # return 666 # print(my_len(),type(my_len())) # def my_len(): # count = 0 # for i in s1: # count += 1 # return 666,222,count,'老男孩' # print(my_len(),type(my_len())) # def my_len(): # count = 0 # for i in s1: # count += 1 # return 666,222,count # ret1,ret2,ret3 = my_len() # (666, 222, 19,) # print(ret1) # print(ret2) # print(ret3) # def my_len(): # count = 0 # for i in s1: # count += 1 # return count # print(my_len()) # print(len(s1))
2)函数的传参
li = [1, 2, 3, 43, 'fdsa', 'alex'] s1 = 'fdsgdfkjlgdfgrewioj' # def my_len(a): # 函数的定义()放的是形式参数,形参 # count = 0 # for i in a: # count += 1 # return count # ret = my_len(li) # 函数的执行() 实际参数,实参 # print(ret) # print(len(s1)) # 从实参角度 #1,位置参数。 必须一一对应,按顺序 # def func1(x,y): # print(x,y) # func1(1, 2) #2,关键字参数。必须一一对应,不分顺序。 # def func1(x,y,z): # print(x,y,z) # func1(y=2,x=1,z=5,) # def max(a,b): # if a > b: # return a # else: # return b # print(max(100,102)) # def max(a,b):return a if a > b else b # print(max(100,102)) #3,混合参数。一一对应 且 关键字参数必须在位置参数后面。 # def func2(argv1,argv2,argv3): # print(argv1) # print(argv2) # print(argv3) # func2(1,2,argv3=4) # 从形参角度 #1,位置参数。 必须一一对应,按顺序 # def func1(x,y): # print(x,y) # func1(1,2) #2,默认参数。 必须在位置参数后面。 # def register(name,sex='男'): # with open('register',encoding='utf-8',mode='a') as f1: # f1.write('{} {}\n'.format(name,sex)) # # while True: # username = input('请输入姓名:/q 或者 Q 退出') # if username.upper() == 'Q':break # if 'a' in username: # sex = input('请输入性别:') # register(username,sex) # else: # register(username) #3,动态参数 *args,**kwargs 万能参数 # def func2(*args,**kwargs): # print(args) # 元组(所有位置参数) # print(kwargs) # func2(1,2,3,4,5,6,7,11,'alex','老男孩',a='ww',b='qq',c='222') # 位置参数,*args,默认参数 # def func3(a,b,*args,sex='男'): # print(a) # print(b) # print(sex) # print(args) # func3(1,2,'老男孩','alex','wusir',sex='女') # 位置参数,*args,默认参数,**kwargs # def func3(a,b,*args,sex='男',**kwargs): # print(a) # print(b) # print(sex) # print(args) # print(kwargs) # func3(1,2,'老男孩','alex','wusir',name='alex',age=46) def func1(*args,**kwargs): # 函数的定义 * 聚合。 print(args) print(kwargs) # l1 = [1,2,3,4] # l11 = (1,2,3,4) # l2 = ['alex','wusir',4] # func1(*l1,*l2,*l11) # 函数的执行:* 打散功能。 # func1(1,2,3,4,'alex','wusir',4,1,2,3,4) # 函数的执行:* 打散功能。 # dic1 = {'name1':'alex'} # dic2 = {'name2':'laonanhai'} # func1(**dic1,**dic2)