1、函数的定义

 

'''

function  功能,函数

问题:一个由数字组成的列表,每次取其中两个判断大小,最后找出这个列表中最大的数 

 

函数就是对代码进行一个封装。把实现,某一功能的相同代码,进行封装到一起。下次需要使用时,就不需要再进行代码编写,直接调用即可。

好处:

增加代码的复用性,增加代码可读性,减少代码的编写量,降低维护成本 

函数可以看成,解决某类问题的 '工具'

定义方法:

'''

    def function_name(params):

           block

           return expression(表达式)/value

'''   

def 关键字表示定义一个函数

function_name 函数名,和变量名的命名要求相同,以字母和_开头,可以包含字母、数字和_

params 表示参数,可以是零个,一个 或者多个参数,函数参数不用指定参数类型

'''

 

例子:

def fun(a):

       print('hello',a)

 


  2、python中函数的参数详解

 

1.必备参数:参数没有默认值

 

2.默认参数:参数有默认值,调用函数是可以传参也可以不传参,不传参时,参数是默认值

 

3.不定长参数: 可在定义时定义,也可在传入时传入

    定义方法: def function_name(*args,**kwargs):

    *args 将传入参数包装成元组

    **kwargs将传入参数包装成字典

 

例子:

 

#不需传参数

def fun():

       print('hello python')

       print('人生苦短,我用python')

 

#必备参数

def fun2(a):

       print('必备参数:',a)

 

#默认参数

def fun3(a=3):

    print('默认参数:',a)

 

#可选参数 0个-多个

 

#*arg

 

def fun4(*arg):  #默认将我们的传入参数,包装成元组

       print('arg:',arg)

 

fun4(1,2,4,5,6,7)

fun4(li,1,2,4,'ssss',{'a':2})

tu =(1,2,3,4)

fun4(*tu)

fun4(*li)

fun4(*{'s':2})

 

#**kwarg

def fun5(**kwarg): #默认将我们传入的参数,包装字典

    print('kwarg',kwarg)

 

#空集合  se = set()

#空字典  {}

 

di = dict(a=1)

## **kwarg  传值的时候,必须要满足字典的定义

 

fun5(a=1,b=3,c=4,d=5)

fun5(**di)

 

###5种传参,混合用时,需要足以的事项

'''

1.默认参数,必备参数

2.*arg ,默认参数,必备参数

3.*arg,**kwarg

'''

 

#1

def fun6(b,m=2):  #默认参数,必须放到,必备参数之后

       print('必备参数',b)

       print('默认参数',m)

 

fun6(1,3)

fun6(m=10,b=5) 

 

 

#2

def fun7(b,m=2,*arg):

       print('必备参数',b)

       print('默认参数',m)

       print('arg',arg)

 

def fun8(*arg,b,m=2): #当*arg 在最前时,后面参数,必须指定

       print('必备参数',b)

       print('默认参数',m)

       print('arg',arg)

 

#fun8(1,2,3,4,5,6,7)

fun8(1,2,3,4,5,b=6,m=7)

fun8(1,2,3,4,5,m=6,b=7)

 

def fun9(*arg,m=2,b): #当*arg 在最前时,默认参数可以放到必备参数前面

       print('必备参数',b)

       print('默认参数',m)

       print('arg',arg)

 

fun9(1,2,3,4,5,b=6,m=7)

 

#3

def fun10(*arg,**kwarg): # **kwarg,只能放到最后

       print('arg',arg)

       print('kwarg',kwarg)

 

 

fun10(1,2,3,4,5,6,7) # arg (1, 2, 3, 4, 5, 6, 7)

                                # kwarg {}

 

fun10(1,2,3,4,a=2,b=3)

 


  3、return

 

return有两个作用:

1.用来返回函数的运行结果,或者调用另外一个函数。比如max()函数

                 

2.函数结束的标志。只要运行了return,就强制结束了函数。return后面的程序都不会被执行。

                                  

如果函数中没有写return,其实函数运行结束时,默认执行了 return None

return语句的位置是可选的,不是固定出现再函数的最后,可以自定义在函数中的任何地方。

 

例子:

 

#如果函数中没有写return  其实函数运行结束时,默认执行了 return None

a =fun()

print(a)

 

def test_return(a,b):

    if a>b:

        return a

    elif a<b:

        return b

    else:

        return '一样大'

    

    print('比较结束*****'#不会打印

    

#return  print 进行区别:

#return:返回函数运行的结果

#print :打印输出,只是用来看的

 

def test_return2(a,b):

       return 'jianeng'

       if a>b:

             print( a)

       elif a<b:

             print( b)

       else:

             print( '一样大')

        

       print('比较结束*****')

 


  4、lambda匿名函数

 

没有函数名的函数

g = lambda x:x+1

lambda简化了函数定义的书写形式。是代码更为简洁,但是使用函数的定义方式更为直观,易理解 

 

lambda的应用场景:

1.有些函数如果只是临时一用,而且它的业务逻辑也很简单时,就没必要用def 来定义,这个时候就可以用lambda。

 

2.函数都支持函数作为参数,lambda 函数就可以应用

例子:

 

#lambda x(参数) :x +1 (return x+1)

 

(lambda x :x +1)(5)

 

g = lambda x:x+1

g(1)

 

#传入多个参数

add = lambda x,y:x+y

 

#判断偶数?

b =lambda x:x%2==0

 

def judge(x):

       if x %2==0:

             return True

       else:

              return False


Python基本数据类型:https://www.songqinnet.com/article/966

Python序列类型各自方法:https://www.songqinnet.com/article/970

Python字符串拼接和格式化输出:https://www.songqinnet.com/article/973

Python集合、字典及运算符:https://www.songqinnet.com/article/975

Python条件与循环语句:https://www.songqinnet.com/article/978

Python函数基础:https://www.songqinnet.com/article/981

Python内置函数、作用域、闭包、递归:https://www.songqinnet.com/article/983