美文网首页
【第10天】python全栈从入门到放弃

【第10天】python全栈从入门到放弃

作者: 36140820cbfd | 来源:发表于2019-08-04 09:36 被阅读0次

    1.动态参数

    *位置参数

    代码块
    age=(1,3,4,5,65,12)
    
    def student(*name):  # **name动态接收位置参数
        print(name)
    
    student('wangsiyu','nezha','xuwei')    #   ('wangsiyu', 'nezha', 'xuwei')
    student(*age)   #*表示打散     (1, 3, 4, 5, 65, 12)
    

    **关键字参数

    代码块
    def student(**name):  # **food动态接收关键字参数
    
        print(name)   #{'name1': 'wangsiyu', 'name2': 'nezha', 'name3': 'xuwei'}
    
    student(name1='wangsiyu',name2='nezha',name3='xuwei')
    

    2.命名空间和作用域

    2.1 命名空间

    1. 内置命名空间: python解释内部运行时的变量函数

    2. 全局命名空间: 我们在py文件中直接声明出来的变量,函数

    3. 局部命名空间: 在函数内部声明的变量和函数.

    2.2作用域

    1.全局作用域:内置+全局

    2.局部作用域:局部

    globals() 查看全局作用域中的名字

    locals() 查看当前作用域中的名字

    global: 把全局变量拿到局部来用.

    nonlocal: 把离他最近的一层的变量拿过来.不会找全局

    3. 写函数. 给函数传递任意个整数. 返回这些数的和

    代码块:第一种方法
    def sum_num(*num):
        print(sum(num))
    
    sum_num(1,2,3,4,5)   #15
    
    
    代码块:第二种方法
    def sum_num(*num):
        print(type(num))   #<class 'tuple'>
        sum=0
        for i in num:
            sum+=i
        print(sum)
    
    
    sum_num(1,2,3,4,5,6)   #21
    
    

    4.写一个函数,可以接收位置参数,和关键字参数

    代码块
    def func(name,*args,**kwargs):
        print(name)    #ec14
        print(args)    #('wangsiyu', 'gongxudong', 'nezha')
        print(kwargs)   #{'count': 24, 'teacher': 'wanjun', 'location': 'liao ning province'}
    
    func('ec14','wangsiyu','gongxudong','nezha',count=24,teacher='wanjun',location='liao ning province')
    

    5.在函数中实参形参各个参数的位置

    形参: 1.位置参数, 2, *args, 3.默认值参数, 4. **kwargs
    实参:1. 位置参数. 2.关键字参数. 3. 混合参数

    代码块
    def func(name,*args,teacher='万君',**kwargs):
        print(name)    #ec14
        print(args)    #('wangsiyu', 'gongxudong', 'nezha')
        print(teacher)   #万君
        print(kwargs)    #{'count': 24, 'girl': 18}
    
    func('ec14','wangsiyu','gongxudong','nezha',count=24,girl=18)
    

    6. 变量取值就近原则

    代码块
    a=20
    def func():
        a=2
        print(a)
        print(globals())  #获取内置和全局的变量名字
        print(locals())   #获取当前函数内部的变量
    func()
    

    7.函数的嵌套

    函数的嵌套
    代码块
    def func1():
        print('1')
        def func2():
            print(2)
            def func3():
                print(3)
                func4()
            print(4)
            func3()
        def func4():
            print('game over')
        print(666)
        func2()
    func1()
    
    #res: 1  666   2    4     3   gameover
    

    8.全局变量global

    代码块
    a=10
    def func():
        global a   #会重新给全局变量a赋值
        a=666
        print(a)
    func()
    print(a)
    

    9. nonlocal(改变距离他最近一层的局部变量的值)

    代码块
    a=20
    def func1():
        a=25
        print(a)
        def func2():
            nonlocal a
            a=30
            print(a)
    
        func2()
        print(a)
    func1()    #25  30  30 
    print(a)    #20 全局变量
    

    10.实参传递的打散

    代码块
     lst = ["马虎疼", "大洋哥", "小花生", "毛尖妹妹"]
    
    func(*lst)  # 实参, 打散, 迭代产生的
    
    dic = {"name":"太白","alex":"wuse"}
    
    func(**dic)# 把字典打散. 以key=value形式进行传参
    
    别跑,点个赞再走

    相关文章

      网友评论

          本文标题:【第10天】python全栈从入门到放弃

          本文链接:https://www.haomeiwen.com/subject/aisedctx.html