一,什么叫做全局变量?局部变量?
答:在全局生效的变量叫做全局变量,在子程序中定义的变量叫做局部变量
当全局变量与局部变量同名时,在定义局部变量的子程序中,局部变量起作用,在其他地方全局变量起作用。
#-*-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