zoukankan      html  css  js  c++  java
  • day4_局部变量和全局变量

    一、介绍:

    定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。

    局部变量意思就是在局部生效的,出了这个变量的作用域,这个变量就失效了

    全局变量的意思就是在整个程序里面都生效的,在程序最前面定义的都是全局变量,全局变量如果要在函数中修改的话,需要加global关键字声明,如果是list、字典和集合的话,则不需要加global关键字,直接就可以修改。

    局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中

    备注:全局变量少用,有点儿不安全(每个函数都能改),全局变量占内存,一直到最后

    实例1-局部变量

    name = '小黑' #全局变量,其他函数都可以用
    def get_name():
        name = '小白' #局部变量
        print(name)
    get_name()

    输出:

    小白

    实例2-函数找不到变量时,到外面找

    name = '小黑' #全局变量,其他函数都可以用
    def get_name():
        # name = '小白' #局部变量
        print(name)
    get_name() #调用函数,找不到name时,到外面找name变量

    输出:

    小黑

    实例3:-函数内改变全局变量,需要加global关键字声明(str ,int,元组都要声明下),如果是list、字典和集合的话,则不需要加global关键字

    name = '小黑' #全局变量,你在哪个函数里面都可以用
    names = []
    def get_name():
        global name #声明
        names.append('hahhah') #字典和列表不需要声明,可直接修改.#str int 元组,需要声明
        name = '小白' #自己函数连找不到变量,去外面找。
        print('函数里面的name',name)
    def get_name2():
        print('get_name2',name)
    get_name2()  #函数不调用,代码不被执行,不然函数仅仅是定义,只有定义,才能生效
    get_name()
    print('函数外面的name', name)

    输出:

    get_name2 小黑
    函数里面的name 小白
    函数外面的name 小白

     习题1:

    money = 500
    def test(consume):
        return money - consume #前面money找全局变量,后面传过来的也是500
    def test1(money):
        return test(money) + money
    money = test1(money)
    print(money)

    习题2:

    def test():
        global a
        a = 5
    def test1():
        c = a + 5
        return c
    # test()
    res = test1() #函数不调用,不执行
    print(res)
  • 相关阅读:
    七种数据类型
    js字符串解析成数字
    html节点操作与事件
    form表单的默认提交行为
    CSS中的各种width(宽度)
    Javascript读写CSS属性
    ECMAScript6新特性之Reflect
    ECMAScript6新特性之String API
    ECMAScript6新特性之Array API
    判断Javascript对象是否为空
  • 原文地址:https://www.cnblogs.com/once-again/p/9580986.html
Copyright © 2011-2022 走看看