Python函数基础

1.函数的定义

2.函数的传参

3.return

4.lambda匿名函数

1.函数的定义

函数就是对代码进行一个封装。把实现,某一功能的相同代码,进行封装到一起。

下次需要使用时,就不需要再进行代码编写,直接调用即可。
好处:
增加代码的复用性,增加代码可读性,减少代码的编写量,降低维护成本
函数可以看成,解决某类问题的 '工具'
定义方法:
def function_name(a):
print(a)

2.python中函数的参数详解

1.必备参数:参数没有默认值
2.默认参数:参数有默认值,调用函数是可以传参也可以不传参,不传参时,参数是默认值
3.不定长参数: 可在定义时定义,也可在传入时传入
定义方法: def function_name(*args,**kwargs):
*args 将传入参数包装成元组
**kwargs将传入参数包装成字典

3.return

return有两个作用:1.用来返回函数的运行结果,或者调用另外一个函数。比如max()函数
2.函数结束的标志。只要运行了return,就强制结束了函数。return后面的程序都不会被执行。

如果函数中没有写return,其实函数运行结束时,默认执行了 return None
return语句的位置是可选的,不是固定出现再函数的最后,可以自定义在函数中的任何地方。

4.lambda匿名函数

没有函数名的函数
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)

  

  

原文地址:https://www.cnblogs.com/xcjldtp/p/8516697.html