#February 28th
#全局变量,在整个程序中都可以调用
# name = 'zhangsan' #全局变量
#
# def change_naem():
# global name #在局部中设备成全局变量
# name = 'lisi' #局部变量
# print('你的名字:',name)
#
# change_naem()
# print(name)
#March 1th
#如果函数的内容无global关键字,
# - 有声明局部变量
# NAME = ['a1','a2']
# def zhangsan():
# NAME = 'My'
# print("你是",NAME)
# zhangsan()
# # - 无声明局部变量
# NAME = ['a1','a2']
# def zhangsan():
# NAME.append('xxoo') #可以使用列表中所有方法
# print("你是",NAME)
# zhangsan()
#如果函数的内容有global关键字,
# - 有声明局部变量
# NAME = ['a1','a2']
# def zhangsan():
# global NAME
# NAME ='自己'
# print("你是",NAME)
# zhangsan()
# 错误global 示例
# def zhangsan():
# NAME ='自己'
# global NAME #不能把global放在局部变量后面
# print("你是",NAME)
# zhangsan()
# - 无声明局部变量
# NAME = ['a1','a2']
# def zhangsan():
# NAME ='自己'
# print("你是",NAME)
# zhangsan() #函数直接调用局部变量
#总结:
#全局变量变量名用大写,局部变量名小写
# 1.优先读取全局变量,再读取全局变量,无法对全局变量重新赋值
# 2.但对可变类型,可以对内部元素进行操作,如列表
#查看局部、全局变量的执行步骤
#
# name = '二狗子'
#
# def cuihua():
# name = '沉着'
# def dabao():
# global name
# # nonlocal name #nonlocal 找一级变更。
# name = '冷静'
# dabao()
# print(name)
# print(name)
# cuihua()
# print(name)
#打印结果:二狗子 沉着 冷静
#变量的作用域
# def foo():
# name = 'abc'
# def bar():
# name = '123'
# def tt():
# print(name)
# return tt
# return bar
# bar =foo() #1
# tt=bar() #2
# print(tt) #3
# tt() #4
# foo()()() #此一条是上面1.2.3.4一简写