“Python变量的作用域”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
(创建页面,内容为“==变量的作用域== 根据程序中变量所在的位置和作用范围变量分为局部变量和全局变量,局部变量仅在函数内部,且作用域也…”)
 
 
(未显示同一用户的3个中间版本)
第19行: 第19行:
 
NameError: name 'z' is not defined</nowiki>
 
NameError: name 'z' is not defined</nowiki>
 
===全局变量===
 
===全局变量===
全局变量只在函数之外定义的变量,在程序执行全过程有效。全局变量在函数内部使用时,需要提前使用保留字global声明。
+
全局变量指在函数之外定义的变量,在程序执行全过程有效。
  
  <nowiki>n = 2 #n是全局变量
+
全部变量在函数内部使用时,需要 提前使用保留字global声明,语法形式如下:
 +
 
 +
  <nowiki>global <全局变量></nowiki>
 +
 
 +
 
 +
 
 +
  <nowiki>n=2
 +
print(n)
 
def multiply(x, y = 10):
 
def multiply(x, y = 10):
 
     global n
 
     global n
 +
    n=1
 
     return x*y*n
 
     return x*y*n
 +
  
 
s = multiply(99,2)
 
s = multiply(99,2)
print(s)</nowiki>
+
print(s)
 +
print(n)</nowiki>
 +
 
 +
上例中,变量n是全局变量,在函数multiply() 中使用时需要在函数内部使用global声明,定义 后即可使用。
 +
 
 +
如果未使用保留字global声明,即使名称相同, 也不是全局变量。
 +
 
 +
 
 +
<nowiki>n=2
 +
print(n)
 +
def multiply(x, y = 10):
 +
 
 +
    n=1
 +
    return x*y*n
 +
 
 +
 
 +
s = multiply(99,2)
 +
print(s)
 +
print(n) </nowiki>
 +
 
 +
练习:需要添加什么代码 使程序运行?
 +
 
 +
<nowiki>school="山东商职学院"
 +
depart="信息艺术学院"
 +
 
 +
def student(name,age):
 +
    #需要在此处添加什么代码?
 +
    print(name,age,school,depart)
 +
 
 +
student("张三",21)</nowiki>

2021年4月2日 (五) 03:08的最新版本

变量的作用域

根据程序中变量所在的位置和作用范围变量分为局部变量和全局变量,局部变量仅在函数内部,且作用域也在函数内部,全局变量的作用域跨越多个函数。

局部变量

def multiply(x, y = 10):
    z = x*y
    return z

s = multiply(99,2)
print(s)
print(z)

变量z是函数内部使用的变量,当函数调用后,变量z将不存在,所以会发生如下错误。

198
Traceback (most recent call last):
  File "D:/teaching/python/视频/Python语言程序设计/第五周视频课件/5-1.py", line 7, in <module>
    print(z)
NameError: name 'z' is not defined

全局变量

全局变量指在函数之外定义的变量,在程序执行全过程有效。

全部变量在函数内部使用时,需要 提前使用保留字global声明,语法形式如下:

 global <全局变量>


n=2
print(n)
def multiply(x, y = 10):
    global n
    n=1
    return x*y*n


s = multiply(99,2)
print(s)
print(n)

上例中,变量n是全局变量,在函数multiply() 中使用时需要在函数内部使用global声明,定义 后即可使用。

如果未使用保留字global声明,即使名称相同, 也不是全局变量。


n=2
print(n)
def multiply(x, y = 10):

    n=1
    return x*y*n


s = multiply(99,2)
print(s)
print(n) 

练习:需要添加什么代码 使程序运行?

school="山东商职学院"
depart="信息艺术学院"

def student(name,age):
    #需要在此处添加什么代码?
    print(name,age,school,depart)

student("张三",21)