目录
练习3.3
1、判题
(1) global 语句的作用是将本地变量升格为全局变量。 (✖)
(2) nonlocal 语句的作用是将全局变量降格为本地变量。 (✖)
(3) 本地变量创建于函数内部,其作用域从其被创建位置起,到函数返回为止。 (✔)
(4) 全局变量创建于所有函数的外部,并且可以被所有函数访问。 (✖)
(5) 在函数内部没有办法定义全局变量。 (✖)
2、代码分析题
阅读下面的代码,指出程序运行结果并说明原因。
(1)
a = 1
def second():
a = 2
def thirth():
global a
print(a)
thirth()
print(a)
second()
print(a)
1
2
1
(2)
a = 1
def second():
a = 2
def thirth():
nonlocal a
print(a)
thirth()
print(a)
second()
print(a)
2
2
1
(3)
x = 'abcd'
def func():
print(x)
func()
abcd
(4)
x = 'abcd'
def func():
x = 'xyz'
func()
print(x)
abcd
(5)
x = 'abcd'
def func():
x = 'xyz'
print(x)
func()
print(x)
xyz
abcd
(6)
x = 'abcd'
def func():
global x
x = 'xyz'
func()
print(x)
xyz
(7)
X = 'abcd'
def func():
x = 'xyz'
def nested():
print(x)
nested()
func()
print(X)
xyz
abcd
(8)
def func():
x = 'xyzdef'
def nested():
nonlocal x
x = 'abcd'
nested()
print(x)
func()
abcd