python学习第三周之简述局部变量与全局变量作用域

1.所谓局部变量,按字面意思就是在部分位置起作用,全局变量就是在整个函数中都起作用,这个不难理解,以下通过程序来说明。

(1)局部变量

def change_name(name):
    print("before change",name,school)
    name="WU"   #局部变量,在函数中生效,该函数为该变量的作用域
    print("after change",name)
name="wu"   #定义全局变量name,
change_name(name="wu")
print(name)   #如果要打印name,需要定义全局变量name,否则会报错

以上在函数中定义name为WU,在函数外定义name为wu,输出结果为:

before change wu tyut
after change WU
wu

由此可知WU在函数内生效,在函数外不生效。

(2)全局变量,注意global 变量名,可以修改全局变量。

school="wenshui"    #全局变量

def change_name(name):
    global school   #修改全局变量
    school="tyut"
    print("before change",name,school)
    name="WU"   #局部变量,在函数中生效,该函数为该变量的作用域
    age = 23
    print("after change",name)
print("school:",school)   #为调用函数前执行,输出结果为 wenshui
name="wu"
change_name(name)
print("school",school)  #如果未使用global修改全局变量school,此时输出仍为wenshui,但是由于在函数中使用 global school   修改全局变量,所以此时输出为tyut

在以上函数中定义一个全局变量school,执行该程序,输出结果为:

school: wenshui
before change wu tyut
after change WU
school tyut

2.对于字符串、单独的整数不可以在函数中修改全局变量,而列表、字典、集合、类可以在函数中直接修改全局变量,见如下:

names=["wu","jack","rain"]
def change_name():
    names[0]="武"
    print("inside func",names)   #字符串、单独的整数不可以在函数中修改全局变量;列表、字典、集合、类可以在函数中修改全局变量
change_name()
print(names)

在以上程序中,在函数中直接修改列表的值,会发现函数内的输出跟函数外地的输出是一样的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值