函数先生,你好。

                                                                    python函数

            python中的函数其实也可以理解为变量,函数名就是变量名,函数体就是存储的数据。

           

            函数定义的格式

            def  函数名([参数]):

                    "注释"

                    函数体

                    [return value]

        返回值不是必须的,如果没有定义返回值,则返回值默认为none

        return 返回值可以是任何数据类型,也可以是函数。

                                                                            函数中的参数
这里参考:
https://www.cnblogs.com/SmallWZQ/p/8533740.html

        python中函数的参数的参数类型分为:位置参数、默认参数、命名关键字参数、关键字参数、可变长度参数等。参数定义的顺序必须满足一定的要求: 位置参数必须放在最前面,其次是默认参数,可变参数,命名关键字参数,最后是关键字参数。
        位置参数:简单来说,其实就是形参的位置与实参的位置相对应
        
        默认参数:当调用该函数时,如果没有传入相应的值,就使用该参数的默认值。如果传入了相应的值,则使用传进来的值。

        
        可变参数:我们可以理解为参数个数是不固定的,可变的。在这种情况下,我们可以选择列表元组作为参数。由于列表或者元祖的元素是由调用者传入的,元素多少完全可以由调用者决定。为了标识我们传入的参数是列表或者元祖,我们在参数名前面加一个*,以示区分。这些可变参数在函数调用时,会自动组装成一个元祖。

    

通过上面的测试,我们可以推出,对于传进来的元祖或列表,会循环遍历取出列表或者元祖中的元素。



       关键字参数:关键字参数允许调用者传入0个或任意多个参数。这些参数会在函数内部自动组装成一个字典。

     

        注意这样一个问题:

   

    当我企图传入一个列表和数值、字符串作为key传入时报错了,于是推出,这里的key值应当是一个形式参数,也就是变量,当然不能用列表、数值作为变量名啊。

      命名关键字参数:也就是通过“形参=实参”的形式,来传参。采用这种形式传参时,位置可以打乱。因为这是实参与形参之间的映射关系并不是通过位置来确定,而是通过“形参=实参”的形式。



    混合参数

在前面我们提到,位置参数必须放在最前面,其次是默认参数,可变参数,命名关键字参数,最后是关键字参数。所以当我们使用混合参数时,要时刻注意不同参数类型的顺序问题。



                                                                        全局变量与局部变量
全局变量:在整个程序中都能够使用到的变量。
局部变量:在函数内部定义中定义的变量,一般只在函数内部可见。

变量命名规范:全局变量一般用大写表示,局部变量一般用小写表示。

对于同名变量的使用(全局变量与局部变量同名),我们要牢记“就近原则”,这一点与java相似。

当我们需要使用到全局的变量时,我们要使用到global关键字

注意细节:

当我企图在声明我们将使用到的是全局变量的同时,修改全局变量的值。这样操作是不允许的,会报错。


在嵌套函数中,

如果,我想输出“鸣人”“佐助”“佐助”的结果,我们可以使用nonlocal关键字。

nonlocal 表示接下来所使用的变量是来自上一级的。


关于嵌套函数调用中出现的问题:

这里出现了一个函数demo2未定义的问题,但是我们明明已经定义过了啊?

分析如下:



                                                                匿名函数
    python中的匿名函数定义格式如下:

   

    lambda [参数]:返回值


    对于匿名函数,我们可以这样理解:

    我们在内存中定义了一个数据,但是我们没有给它贴上标签。但是它是存在与内存中的,我们不妨不它叫做匿名变量(个人理解),同样的,如上面所说,函数即变量,匿名函数,其实也就是我们在内存中定义了一个函数,但是我们没有给他贴上标签。

匿名函数中,一般不能有复杂的逻辑。

                



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值