2.函数的传参
3.return
4.lambda匿名函数
1.函数的定义
函数就是对代码进行一个封装。把实现,某一功能的相同代码,进行封装到一起。
下次需要使用时,就不需要再进行代码编写,直接调用即可。
好处:
增加代码的复用性,增加代码可读性,减少代码的编写量,降低维护成本
函数可以看成,解决某类问题的 '工具'
定义方法:
def function_name(a):
print(a)
2.python中函数的参数详解
1.必备参数:参数没有默认值
2.默认参数:参数有默认值,调用函数是可以传参也可以不传参,不传参时,参数是默认值
3.不定长参数: 可在定义时定义,也可在传入时传入
定义方法: def function_name(*args,**kwargs):
*args 将传入参数包装成元组
**kwargs将传入参数包装成字典
return有两个作用:1.用来返回函数的运行结果,或者调用另外一个函数。比如max()函数
2.函数结束的标志。只要运行了return,就强制结束了函数。return后面的程序都不会被执行。
如果函数中没有写return,其实函数运行结束时,默认执行了 return None
return语句的位置是可选的,不是固定出现再函数的最后,可以自定义在函数中的任何地方。
没有函数名的函数
g = lambda x:x+1 # x参数 x+1是retrun
g(4) #调用
lambda简化了函数定义的书写形式。是代码更为简洁,但是使用函数的定义方式更为直观,易理解
lambda的应用场景:
1.有些函数如果只是临时一用,而且它的业务逻辑也很简单时,就没必要用def 来定义,这个时候就可以用lambda。
2.函数都支持函数作为参数,lambda 函数就可以应用
def fun1(): print('没传参') def fun2(a): #必备参数 可指定 print('必须传参数') def fun3(b=1): #可传可不传 可指定 print(b,'默认参数') #1 def fun4(*arg): print(arg,'随便传') # ''' 不定长参数 :包装成元组 当调用的时候 加一个 * 就会解包 ''' #2 def fun5(**kwarg): #可传可不传 print(kwarg,'可传可不传') ''' 包装成字典 调用的时候,关键字参数 加俩个* 可以传字典 ''' #参数混合时 调用的时候 指定的参数都是关键字参数 ''' 定义的时候必备参数必须在默认参数之前 调用关键字参数必须放最后 确保参数拿到值,也不能多拿 ''' def fun6(b,m=1): pass def fun7(*arg,b,m=1): pass def fun8(b,m=1,*arg): #如果不懂的话就按这个顺序 print(arg)
#1.找到1-100内的质数,结束之后打印“搜索结束”. #(质数:只能被1和自己整除,如2,只有除以1和2才能整除) for i in range(1,101): j=1 n=0 while j<=i: if i%j==0: n+=1 j+=1 if n==2: print('找到质数=%d'%i) print('搜索结束') #2.定义一个函数,能够输入字典和元组。 #将字典的值(value) 和 元组的值交换,交换结束后,打印字典和元祖。 tu = (4,5,6) dic={'a':1,'b':2,'c':3} def fun(*arg,**kwarg): arg = list(arg) i=0 for key in kwarg.keys(): arg[i],kwarg[key]=kwarg[key],arg[i] i+=1 print(kwarg) print(tuple(arg)) fun(*tu,**dic) #3.定义一个函数,必须包含4种参数形式,然后打印这4个参数,最后返回'OK'。 def fun1(a,b=1,*arg,**kwarg): print('必备参数:',a) print('默认参数:',b) print('不定长参数:',arg) print('关键字参数:',kwarg) return 'OK' fun1(1,2,3,4,x=5,y=6)