一,什么叫做全局变量?局部变量?
答:在全局生效的变量叫做全局变量,在子程序中定义的变量叫做局部变量
当全局变量与局部变量同名时,在定义局部变量的子程序中,局部变量起作用,在其他地方全局变量起作用。
#-*-coding:utf-8-*-
name = "hello" #全局变量
def change_name():
x=1#局部变量
name = "你好"
print ("changename",name)
change_name() #输出的是局部变量
print name #输出的是全局变量
二, 关键字global 全局变量重新声明,输出的都是重新声明之后的变量
#-*-coding:utf-8-*-
name = "hello" #全局变量
def change_name():
x=1#局部变量
global name
name = "你好"
print ("changename",name)
change_name()
print name #加上global之后全局变量被改变,输出的是你好
三,
#如果函数的内容无global关键字
# - 有声明局部变量
NAME = ["n","l"]
# def qupengfei():
# NAME = "myself"
# print('want', NAME)
# qupengfei()
- 无声明局部变量
def qupengfei():
NAME.append("d")
print('want', NAME)
qupengfei()
## 如果函数的内容有global关键字
# - 有声明局部变量
NAME = ["n","l"]
def qupengfei():
global NAME
NAME = "myself"
print('want', NAME)
qupengfei()
练习:请输出打印内容:黄伟
刘洋
刘洋
沪指花
黄伟
def huangwei():
name = "黄伟"
print(name)
def liuyang():
name = "刘洋"
print(name)
def nulige():
name = '沪指花'
print(name)
print(name)
nulige()
liuyang()
print(name)
huangwei()
练习2
name = "gang"
def weihou():
name = "chen"
def weiweiho():
global name
name ="leng"
weiweiho()
print name
print name
weihou()
print name
输出结果为:gang
chen
leng