python学习之路-变量

本文深入探讨了全局变量与局部变量的区别及应用场景,特别是在函数中如何正确地修改全局变量,以及不同类型的数据结构(如列表)在函数内部修改时的行为表现。

全局变量和局部变量

知识点:当全局变量和局部变量重名时,局部变量中的变量参数起作用,其他地方全局变量参数起作用。

定义一个全局变量name,然后用定义一个函数为把name改成大写

name = "abc"
def change_name(name):
    print('改名之前:',name)
    name = "ABC"
    print("改名之后:",name)
change_name(name)
print(name)

结果:

改名之前: abc
改名之后: ABC
abc
name = "abc"是全局变量
name = "ABC"是局部变量,

在函数内,局部变量只在函数内生效,不会影响全局变量

在函数内定义全局变量,使用global参数

name = "abc"
age = 22
def change_name(name):
    global age
    print('改之前:',name,age)
    name = "ABC"
    age = 33
    print("改之后:",name,age)
change_name(name)
print(name)
print(age)

结果:

改之前: abc 22
改之后: ABC 33
abc
33

在函数中定义了age = 33,由于使用了glogal参数,因此函数内的age成了全局变量。
一般不在函数中直接定义全局变量。

如果变量是不是字符或者整型,如字典,元组,列表,集合等,那么函数内,局部变量是可以更改全局变量的

例子:定义一个列表,在函数内更改列表的内容

names = ["a","b","c","d"]
print("更改之前:",names)
def change():
    names[0] = "A"
    names[2] = "C"
    print("更改之前:",names)
change()
print("验证:",names)

结果:

更改之前: ['a', 'b', 'c', 'd']
更改之前: ['A', 'b', 'C', 'd']
验证: ['A', 'b', 'C', 'd']
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值