函数
函数的定义:是通过def 来定义一个函数
把代码装起来 def my_len(): #my_len()为函数名 l = [1,2,3,4] count = 0 for i in l: count+=1 print(count) #使用函数封装起来的代码为函数体 my_len() #调用函数
写函数时的注意事项:写函数时要尽量以功能为导向,结果最好不要直接在函数中打印
# def my_len(): #函数名的定义 # l = [1,2,3,4,5] # count = 0 # for i in l: # count += 1 # return count #函数的返回值 # # ret = my_len() # print(ret)
没有返回值:
不写return等价于return None
只写一个return 等价于return None
return的作用:1、返回一个值 2、中止一个函数的继续
# 返回一个值:可以返回任意的数据类型,返回什么,就接受什么
# 返回多个值:用一个变量接收返回值,接收到的是一个元祖
# 返回值有多个变量的接收,那么返回值的个数应该和接收变量的个数完全一致
def my_len(l): #参数:接收参数,形式参数,又称为形参 print(l) l = [1,2,3,4] my_len(l) #参数:传参数/传参,是实际的参数,实参 print(my_len(l))
例题:写一个函数,接收参数一个列表或字符串,如果这个列表或者字符串的长度大于2,返回True,否则返回False
def func(s_1): if len(s_1) > 2: return True else:return False print(func([1,2,3,4])) print(func('12'))
参数:
形参和实参
传参数可以传任意的数据类型,并且传什么,就会接收什么
站在传参数的角度上看问题,一共有两种传参的方式
第一种:按照位置传参数
第二种:按照关键字传参数
def f(para): print(para) f(1) #按照位置传参数 f(para=1) #按照关键字传参数
传多个参数:多个参数分别可以使用任意数据类型
def f2(arg1,arg2): #站在接收形参的角度上:又可称为位置参数 print(arg1) print(arg2) f2('abc',arg2=[1,23])
注意:
按照关键字传参数和按照位置传参数是可以混用的
但是,首先传按位置,再传按关键字的
按照位置传完该接受的参数只能接受一个值,不接受或者重复接受
形参:
# 位置参数
# 数量必须与实参数量一致==》必须传的参数
def classmate(name,sex='男'): print('姓名:%s,性别:%s'%(name,sex)) classmate('tom') classmate('simith') classmate('xiaomei','女')
注意:
默认参数:
默认参数是可以不传的参数
在不传参数的情况下可以使用默认的值
如果传了,就会使用传的值
# # 魔性的用法:默认参数尽量避免使用可变数据类型 # lst = [] # def func(l = lst): # l.append(1) # print(l) # # func() # func() # func() # func() # lst = [] # def func(l = lst): # l.append(1) # print(l) # # func([]) # func([]) # func([]) # func([])
魔性的用法:默认参数尽量避免使用可变数据类型
lst = [] def func(l = lst): l.append(1) print(l) func() func() func() func() lst = [] def func(l = lst): l.append(1) print(l) func([]) func([]) func([]) func([])