• 函数(二)


    七.局部变量、全局变量

    name = "李四"         #定义name = "李四"
    
    def name_change():
    
        name = "张三"     #在函数中把name修改为张三
    
        print(name)
    
    name_change()         #调用函数,打印函数中的name
    
    print(name)           #打印函数外的name

    运行结果:

    张三
    李四

    发现虽然函数内把name修改了,但是对函数外的name毫无影响,函数内的name就叫局部变量

    name = "李四"         #定义name = "李四"
    def name_change():
        print(name)       #不修改name,直接打印
    name_change()         #调用函数,打印函数中的name
    print(name)           #打印函数外的name

    运行结果:

    李四
    李四

    定义在函数外部的一级代码的变量就是全局变量,全局能用,所以函数引用有一个优先级,如果函数内有局部变量的话,先用局部变量,若是函数内没有变量则引用全局变量

    假如,一定要在函数中修改全局变量,可以使用global

    name = "李四"         #定义name = "李四"
    
    def name_change():

      global name    #使用global方法 name
    = "张三" #在函数中把name修改为张三 print(name) name_change() #调用函数,打印函数中的name print(name) #打印函数外的name

    结果:

    张三
    张三

    使用global后,在函数中修改name后发现全局变量也发生了变化

    注意:若是先赋值再用global的话就会报错

    name = "张三"
    
    global name

    遇到列表时,情况又有变化

    L1 = [123,456,789]
    
    def num_change():
    
        L1[0] = "abc"
    
        print(L1)
    
    num_change()
    
    print(L1)

    结果:

    ['abc', 456, 789]
    ['abc', 456, 789]
    在函数中修改了列表中的值,则全局的列表也会发生变化
  • 相关阅读:
    迷宫最短路径问题的dfs,bfs实现
    高效率的排序算法2--归并排序
    高效率的排序算法1--快速排序
    POJ No.2386 Lake Counting
    部分和问题 --dfs
    dfs的一个小实现(啊哈算法的例题)
    HDU 5710 Digit Sum
    【视频播放器】在macOS上使用IINA
    视音频格式基础知识&视频压缩
    影视作品(电影,电视剧,PV,MAD,AMV)的制作程序
  • 原文地址:https://www.cnblogs.com/sunj-96/p/10638757.html
Copyright © 2020-2023  润新知