函数的定义,参数分类,返回值,内置函数,作用域,函数嵌套

一、函数开端综合

'''
    函数的嵌套
    变量的作用域
    闭包
    装饰器
    def wrapper
        def inner(*args,**kwargd);
            ret = inner(*args,**kwargs)
            return ret
        return innner

    @wrapper
    def func():
        pass

    迭代器
    生成器
        yield

        g = (x for x in xx)
    推导式
    匿名函数
    python内置函数_下 sorted,filter,map
'''

二、函数的定义

'''
    函数的嵌套
    变量的作用域
    闭包
    装饰器
    def wrapper
        def inner(*args,**kwargd);
            ret = inner(*args,**kwargs)
            return ret
        return innner

    @wrapper
    def func():
        pass

    迭代器
    生成器
        yield

        g = (x for x in xx)
    推导式
    匿名函数
    python内置函数_下 sorted,filter,map
'''

def buy_cai():          ### 只是定义函数,没有调用,不会执行
    print('1.打车')
    print('2.去菜市场')
    print('3讨价还价')
    print('4.回家')

buy_cai()
print('哄哄孙子')

buy_cai()
print('冲洗马桶')

buy_cai()
print('打打老头')

三、函数的参数

"""
    参数 :可以在参数函数调用的时候,给函数传递一些信息

    分类:
        1.形参,在函数定义的时候,需要准备一些变量来接收信息
        2.实参,实际在调用的时候传递的信息

"""

### 1.骂谁?   2.骂到什么程度?
def maren(ren,lv):
    print('1.怒目而视',ren)
    print('2.验证交流',ren)
    if lv > 99:
        print('3.死不要脸')
    else:
        print('3.你愁啥')
    print('4.骂完收工')
maren('破解盘',188)  ### 在调用函数的时候,才知道骂谁,骂到什么程度
maren('破鼠标',10)
maren('破电脑',9999)

四、形参和实参的分类

"""
参数:可以在函数调用的时候,给函数传递一些信息

分类:
    1.形参,在函数定义的时候,需要准备一些变量来接受信息
        1.位置参数,按照位置一个一个声明变量
        2.默认值参数,在函数声明的时候的变量一个默认值,如果实参不传递信息,此时默认值生效,否则就不生效
        3.动态传参
            1   *args 表示接受所有的位置参数的动态传参
                    在形参前面加上一个*号
            2   **kwargs 表示接收所有的关键字的动态传参
    顺序:位置参数 > *args >默认值参数 > **kwargs
    可以搭配使用

    2.实参,实际在调用的时候传递的信息
        1.位置参数,按照位置进行传递
        2.关键字参数,按照关键字的名字进行传递参数
        3.混合参数
            顺序:关键字函数放后面
    实参在执行的时候必须保障每一个形参必须有数据

    * 在实参传递的时候,是把列表打撒成位置参数进行传递
    ** 在实参位置,可以把字典自动转化成关键字参数进行传递
"""

五、返回值

"""
    返回值:函数执行之后,会给调用方一个结果,这个结果就是返回值

    关于return:
        函数只要执行到了return,函数就会立即停止并返回内容,函数内的return的后续的代码不会执行
        1.如果函数内没有return,此时外界收到的是None
        2.如果写了return
            1.只写return,后面不跟数据,此时接收到的依然是None
            2.return值,此时表示函数有一个返回值,外界能够接收一个数据
            3.return 值1,值2,值3....此时函数有多个返回值,外界收到的是元祖,并且,该元祖内,存放所有的返回值
"""

def func(a,b):
    return a + b
ret = func(10,20)
print(ret * 3)

六、内置函数

"""
基础数据类型相关
    和数字相关的
        内置函数:直接拿来用的函数
        1.print
        2.input
        3.complex 复数:实部 + 虚部
        4.bin,oct,hex
            bin 二进制
            oct 八进制
            hex 十六进制
                a = 18          十进制
                print(bin(a))   0b10010
                print(oct(a))   0o22
                print(hex(a))   0x12
            二进制转十进制
                a = 0b10010
                print(int(a))
        5.sum
        6.min
        7.max
        8.pow 次方
            a = 10
            b = 3
            print(pow(a,b))
    和数据结构相关的
        1.list
        2.typle
        3.reversed 翻转
        4.slice
        5.formot
            格式化
            a = 18
            printf(foramt(a,'08b')) x:十六进制,b:二进制,o:八进制
                其中08b,是定制,如8位,空位用0补齐
        6.ord
            a = '中'
            printf(ord(a)) 中国的中字在unicode中码位是20013
        7.chr
            print(ch(20013)) 给出编码位置展示出文字
        8.enuimerate
            for i,j in enuimerate(lst)
        9.all       可以当做and看
        10.any      可以当做or看
"""

七、作用域

"""
作用域:变量的访问权限

总结 :里面访问外面没问题,外面访问里面不能直接访问
"""
a = 10 ### 全局变量 ——》全面作用域

def func(): ### 全局
    b = 20  ### 局部变量 ——》局部作用域
    print(b)

def func():
    c = 10086
    return c    ### 如果想要在函数外面访问到函数内部的东西,必须return

八、函数的嵌套

"""
函数可以嵌套函数

def fun1():
    def fun2(): 函数的嵌套,局部
"""

def func1():
    print(123)
    def fun2():
        print(456)
        def fun3():
            print(789)
        print(1)
        fun3()
        print(2)
    print(3)
    fun2()
    print(4)
func1()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值