• python基础--变量01


    1.函数传递多余的位置参数----*args   保存为数组格式

    传递多余的关键字参数------**kwargs  保存为字典格式

     

    def test(x,*args,**kwargs):
        ######
        return res
    test(1,2,3,4,a=3,b=4)

    2.全局变量:在函数之前定义的变量(顶头写的),在所有函数中都可以调用

    局部变量:在函数内部定义的变量(有缩进),只能在本函数内部调用

    3.在函数内部改全局变量只需要在函数内部定义变量时加上修饰global,要写在最前边

    name = "xiaohua"
    def change_name():
        global name
        name = "xiaohei"
        print('change_name',name)
    change_name()
    print(name)
    
    change_name xiaohei
    xiaohei

    如果函数的内容无global关键字,优先读取局部变量,能读取全局变量,无法对全局变量重新赋值,但是对于可变类型,可以对内部进行操作

    如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值

    name = ["小红","小黑"]
    def a():
        name1 = "小胖"
        print(name1)
        print(name)
    
    
    def b():
        global name
        name.append("小黄")
        print(name)
    a()
    b()
        

    4.当代码开始运行时,遇到函数只编译不运行

    name = "刚娘"
    
    def weihou():
        name = "陈卓"
        def weiweihou():
            global name
            name = "冷静"
        weiweihou()
        print(name)
    
        
    print(name)
    weihu()
    print(name)
    
    
    #刚娘
    #陈卓
    #冷静
    
    #函数运行顺序:
    1
    12-1 刚娘
    4
    8
    6-1 改为冷静
    7
    9-4 陈卓
    14-1  冷静

    5.nonlocal与global类似,不过它指的是上一级的变量

  • 相关阅读:
    详解扩展欧几里得算法(扩展GCD)
    NOIP 2012 同余方程
    NOIP 2011 观光公交
    NKOJ4330 逛公园
    NKOJ 7.7练习题A IP地址
    NKOJ3777 卡牌操作
    NKOJ3772 看电影
    NKOJ3765 k个最小和
    NKOJ3775 数列操作
    NKOJ3768 数列操作
  • 原文地址:https://www.cnblogs.com/kedaxiaohei/p/10046466.html
Copyright © 2020-2023  润新知