函数1

function:

1.定义:

函数是对功能或是动作的封装. 函数侧重点对实现某个功能.

2.组成:

def 函数名(形参列表):

    函数体

    函数返回值(return)

调用函数:函数名(实参列表)

形参:在函数声明的位置(变量)
实参:在函数调用的时候给函数形参传递的信息(值)
传参:将实参传递给形参的过程

返回值: 终止函数的运行

    1.什么都不写,不写return. 返回None
    2.只写return,    返回None
    3.return + 值, 有一个返回值
    4.return +多个值, 返回为多个值, 接受的是元组(不可变,安全)

  # 注意return的位置,已经return与print的关系(没有任何关系)

参数:
    1. 实参:
           a.位置参数        (记住位置)

                def func(x,y):
                    pass
                func(1,2)

           b.关键字参数      (记住名字)
                #按照形参的名字给形参传值
                def func(food, drink,good_food,good_drink):
                    pass
                func(good_food= '之伤残', drink= 'water' food='烧烤',good_drink='可乐')
                #不用考虑位置,按照函数名传值

           c.混合参数     (先位置参数,后关键字参数)

                def func(food, drink, good_food, good_drink):
                    pass
                func('烧烤', good_food='之伤残', drink='water', good_drink = '可乐')

    2.形参:
           a.位置参数

               def register(name, age, gender):
                   pass


           b.默认值参数      默认值参数放在后面

               def register(name,age,gender='男'):
                   pass

           c.动态传参:

                   位置参数的动态传参(*args)   位置参数 动态参数 默认值参数
                        def func(*food, drink='water'):
                            pass
                        func('kaorou','mianbao')

                   关键字参数的动态传参(**kwargs)
                        def func(**food):
                            pass
                        func(good_food='狗不理', drinking='kele')

            顺序:位置参数  位置参数动态传参(元组)  默认值参数  关键字参数的动态传参(字典)

    3.聚合与打散

           def func(*food): #这里的*,是聚合
               pass
           lst = ['狗不理','煎饼','烧鸡','肘子']
           #如果要把lst中的元素一个一个传个函数形参,需写成func(lst[0],lst[1],lst[2],lst[3])
           #很麻烦,所以可以写成如下
           func(*lst) #这里的*作用为打散,将列表,元组,字典,字符串元素进行迭代打散

           def func(**food):
               pass
           dic ={name='狗不理',price='一百'}
            #正常传参为:func(name=dic(name),price=dic(price))
            func(**dic)

    4.名称空间
           
            1.内置命名空间
            2.全局命名空间
            3.局部命名空间      #访问;局部可以访问全局,全局可以访问内置
       
       作用域:
            
            1.全局作用域  #包括了内置命名空间,全局命名空间 
                globals() 查看全局命名空间中的内容
            
            2.局部作用域  #包含了局部命名空间
                locals()  查看当前作用域中的内容

    5.函数的嵌套
        
        函数可以无数次嵌套
        
    6.global 与 nonlocal
        
        global:在局部可以访问并改变全局变量
                a = 1
                def func():
                    global a
                    a = 20
                print(a)

        nonlocal:****在局部****,寻找外城函数中,离他最近一层的那个变量
                a = 1
                def func1():
                    a = 2
                    def func2():
                        nonlocal a
                        a = 3
                    print(a)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值