Python-函数

>>函数的分类

1、内置函数:python解释器已经为我们定义好了的函数即内置函数

如:len(),sum(),max()

2、自定义函数:需要我们自己根据需求,事先定制好我们自己的函数来实现某种功能,以后,在遇到应用场景时,调用自定义的函数即可

定义函数语法:

def 函数名(参数1,参数2,参数3,...):

          代码

         return 返回的值

函数名()  # 调用函数

例:定义一个函数,输入姓名,并调用


>>定义函数的三种形式

1、无参

定义时无参,意味着调用时也无需传入参数

2、有参:

a. 需要根据外部传进来的参数,才能执行相应的逻辑

b. 定义时有参,意味着调用时则必须传入参数

3、空函数

>>函数参数


1、定义时小括号中的参数,用来接收参数用的,称为“形参”

2、调用时小括号中的参数,用来传递给函数用的,称为“实参”

3、定义带有参数的函数

def num(a, b):

4、调用带有参数的函数(调用带有参数的函数,需要在小括号中,传递数据)

num(10,20)

例:定义一个函数,完成前两个数加法运算,然后对第三个数进行减法,然后调用这个函数


5、五种参数

a、位置参数:按照从左到右的顺序定义的参数

     位置形参:必选参数

     位置实参:按照位置给形参传值

b、关键字参数:按照key=value的形式定义的实参 无需按照位置为形参传值

      注意的问题:

                1. 关键字实参必须在位置实参右面

                2. 对同一个形参不能重复传值

c、默认参数:形参在定义时就已经为其赋值 可以传值也可以不传值,经常需要变得参数定义成位置形参,变化较小的参数定义成默认参数(形参)

        注意的问题:

                1. 只在定义时赋值一次

                2. 默认参数的定义应该在位置形参右面

                3. 默认参数通常应该定义成不可变类型

d、可变长参数: 可变长指的是实参值的个数不固定

        而实参有按位置和按关键字两种形式定义,针对这两种形式的可变长,形参对应有两种解决方案来完整地存放它们,分别是*args,**kwargs

e、命名关键字参数:*后定义的参数,必须被传值(有默认值的除外),且必须按照关键字实参的形式传递可以保证,传入的参数中一定包含某些关键字

>>函数返回值

无return->None

return1个值->返回1个值

return逗号分隔多个值->元组

1、什么时候该有返回值?

调用函数,经过一系列的操作,最后要拿到一个明确的结果,则必须要有返回值

通常有参函数需要有返回值,输入参数,经过计算,得到一个最终的结果

2、什么时候不需要有返回值?

调用函数,仅仅只是执行一系列的操作,最后不需要得到什么结果,则无需有返回值

通常无参函数不需要有返回值

格式:

def  num(a, b):

         return a+b

保存函数返回值:

# 1. 定义函数

def num(a, b):

      return  a+ b

# 2. 保存函数返回值

result = num(10, 20)

# 3. 打印保存的返回值

print(result)

返回多个值:

def num(a, b):

       return a, b

x, y = num(7, 8)

print(x)

print(y)

>>函数的嵌套调用

一个函数里面又调用另外一个函数

格式:

def testA():

      print('........')

def testB():

      print('.........')

      testA()

      print('.........')

testB()


递归函数

如果一个函数在内部不调用其它函数,而是自己本身的话,这个函数就是递归函数。

匿名函数

用lambda关键词能创建小型匿名函数。这种函数省略了def声明函数的标准步骤。

语法:lambdadef [arg1[,arg2,……argn]]:ecxpression

局部变量

在函数内部定义的变量

不同的函数,可以定义相同的名字的局部变量,但是各用各的不会产生影响

局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储。

全局变量

如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是,全局变量

总结

在函数外边定义的变量就叫做,全局变量

全局变量能够在所有的函数中进行访问

如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错

如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的

你可能感兴趣的:(Python-函数)