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']

你可能感兴趣的:(python)