python笔记之变量(variable)

变量

局部变量
  1. 函数内部定义的变量叫做局部变量
  2. 不同函数之间,局部变量可以定义形同的名字,互不影响

作用范围:
函数内有效,其他函数不能直接使用

例如,

def set_name():
    name = "云端之上"
    print(name)

def get_name():
    name = "星空之下"
    print(name)

set_name()
get_name()

运行结果:

云端之上
星空之下

通过上述例子,我们可以发现:
1. 不同函数之间,局部变量可以定义相同的名字,互不影响
2. 上述函数中的name只在上个函数体内生效,其他函数内不生效

那么,如果我想在get_name中使用set_name中的name怎么办呢?
别急,我们可以使用下面的方法:

def set_name():
    name = "云端之上"
    return name  #1.返回name

def get_name(name):  #3.需要set_name中名字,所以定义参数
    print(name)

a = set_name()   #2.调用函数返回一个值
get_name(a)  

运行结果:

云端之上
全局变量

定义在函数外部的变量就叫做全局变量.

作用范围:
可在不同的函数中使用

在函数内使用global关键字实现修改全局变量的值

在函数体外定义的全局变量:

name = "星空之下"
def set_name():
    print(name)

def get_name():
    print(name)

set_name()
get_name()
print(name)

运行结果:

星空之下
星空之下
星空之下

在函数体内定义的全局变量

age = 20
def chang_age():
    global age   #我们只需添加关键字glabal+变量名就可以,注意:列表和字典不可以用哦~
    age = 25
    print("函数体内的age是:%d"%age)

chang_age()
print(age)

运行结果:

函数体内的age:25
25

那么如果我们的变量是字典或列表,我们应该如何去修改全局变量呢?很简单,我们只需要在使用前先调用一下函数,然后再进行操作就可以了!

g_list =[1,2,3]
g_dict = {"name":"马云","age":666}

def update_info():
    g_list.append(4)
    g_dict["monery"] = "¥1"

update_info()
print(g_list)
print(g_dict)

运行结果:

[1, 2, 3, 4]
{'name': '马云', 'age': 666, 'monery': '¥1'}

注意:
函数体外:局部变量
函数体外: 全局变量
全局变量在所有函数中使用
局部变量只能在所定义的函数中使用
如果在函数体内修改全局变量的值,使用 global 关键字
如果函数体内变量和全局变量相同,则判定它为和全局变量同名的局部变量

全局变量定义的位置:
函数定义之前或函数调用之前.

猜你喜欢

转载自blog.csdn.net/key_book/article/details/80226716