修复 Python 中 NameError: Variable Is Not Defined
本文将讨论Python中NameError的原因以及如何修复特定错误 NameError:Variable is not defined。
Python 中变量的作用域
变量的范围对变量实施可访问性约束,这些变量要么可以从特定块访问,要么不能。 某些变量的生命周期仅在特定块内,而其他变量则可以在整个程序中访问。
让我们通过一个例子来理解它:
#global scope
a =3
#Function to add two numbers
def displayScope():
#local varaible
b=2
# sum a and b
c = a+b
print("The sum of a & b = ",c)
displayScope()
输出:
The sum of a & b = 5
在此示例中,变量 a 定义在顶部,并且未包含在任何块中,因此可以在整个程序中访问它。 但变量b是在功能块内部局部定义的; 因此,它无法在块外访问。
Python 中的名称错误
在Python中,NameError发生在运行时,在执行不带单引号或双引号的变量、库、函数或字符串期间,这些类型是代码中没有任何声明的类型。 其次,当您调用作用域为本地且无法全局访问的函数或变量时,Python 解释器会抛出 NameError 并表示名称“name”未定义。
Python中NameError的原因
NameError 的原因是调用了无效的函数、变量或库。 为了清楚地理解原因,我们举个例子:
# invalid funciton call
def test_ftn():
return "Test function"
print(test_ft()) # calling the the function which does not exist
# printing invalid varaible
name = "Zeeshan Afridi"
print(Name) # printing variable `Name` which does not exist
两者都是 Python 中 NameError 的原因,因为在第一个示例中,我们调用了不可用的函数。 函数名称是 test_ftn,而我们正在调用 test_ft 函数。
在第二个示例中,name 变量被分配给字符串 Zeeshan Afridi,但我们正在打印 Name,它甚至没有在程序中声明。 这就是为什么我们得到 NameError: name 'test_ft' is not Defined。
修复Python错误NameError: Variable is not defined
在上面的例子中,我们得到了NameError,因为我们调用了一个超出范围的变量。 让我们看看如何修复这个 NameError:Variable is not defined。
#global scope
a =3
#Function to add two numbers
def displayScope():
#local varaible
b=2
print("The value of a = ",a)
print("The value of b = ",b)
输出:
The value of a = 3
NameError: name 'b' is not defined
上面的代码显示了 a 的值,因为它可以在整个程序中访问。 另一方面,变量 b 是本地定义的,因此只有函数 displayScope()
知道它; 您无法在范围之外访问它。
这导致了错误 NameError: name 'b' is not Defined。
幸运的是,Python 引入了全局保留关键字来解决这个问题。 此全局保留关键字用于增加局部变量的范围,以便可以在整个程序中全局访问该变量。
让我们通过一个例子来理解它:
#global scope
a =3
#Function to add two numbers
def displayScope():
#local scope
global c
z = 2
c=a+b
print("The value of c =",c)
输出:
The value of c = 5
在这个例子中,变量 c 是在 displayScope()
的本地范围内定义的,但由于魔术关键字 global,我们可以全局访问它。 现在,c 可以在整个过程中访问,因为它被定义为全局的。
相关文章
Python 错误 AttributeError: '_io.TextIOWrapper' Object Has No Attribute 'Split'
发布时间:2023/07/09 浏览次数:167 分类:Python
-
本篇文章将介绍如何修复 Python 中的 AttributeError: '_io.TextIOWrapper' object has no attribute 'split'。在 _io.TextIOWrapper 上使用 split() 方法会返回 AttributeError
Python 错误 AttributeError: _csv.reader Object Has No Attribute Next
发布时间:2023/07/09 浏览次数:123 分类:Python
-
本篇文章将介绍如何修复 Python 中的 AttributeError: '_csv.reader' object has no attribute 'next'。修复 Python 中的 AttributeError: '_csv.reader' object has no attribute 'next' 错误
Python 错误 Error: Invalid Command Bdist_wheel
发布时间:2023/07/09 浏览次数:127 分类:Python
-
在 Python 中构建 wheel 时,有时 setup.py 可能会退出并出现错误 invalid command 'bdist_wheel'。 本篇文章将讨论在 Python 中解决此问题的可能解决方案。安装wheel包来修复Python中 Error:invalid command 'bdist_
Python 错误 ValueError: Too Many Values to Unpack
发布时间:2023/07/09 浏览次数:177 分类:Python
-
当赋值运算符 = 左侧的变量不等于赋值运算符 = 右侧的值时,有时会出现 ValueError: Too much value to unpack。当您尝试在单个输入语句中从用户处获取多个输入或将不相等的变量分配给某些值时,通
Python 错误 TypeError: Can Only Concatenate Tuple (Not Int) to Tuple
发布时间:2023/07/09 浏览次数:186 分类:Python
-
Python错误TypeError: Can Only Concatenate Tuple (Not "Int") To Tuple 当您尝试连接除元组之外的任何数据类型的一个或多个值时,会发生此常见错误。
Python 中错误 IndexError: Invalid Index to Scalar Variable
发布时间:2023/07/09 浏览次数:133 分类:Python
-
Python 中什么是 IndexError:invalid index to scalar variable 当您滥用 numpy 数组的索引时,Python 中会出现 IndexError: invalid index to scalar variable。
修复 Python 中错误 ValueError: Setting an Array Element With a Sequence
发布时间:2023/07/09 浏览次数:170 分类:Python
-
在 Python 中,当您尝试将无效的数据类型分配给数组时,会发生 ValueError: setting an array element with a sequence。 当您尝试将多个值分配给数组上的单个位置时,也可能会发生这种情况。
修复 Python 中 SyntaxError: Can't Assign to Function Call 错误
发布时间:2023/07/09 浏览次数:165 分类:Python
-
本文将讨论如何修复 Python 中的 SyntaxError: Can't Assign to Function Call 错误。Python 中的语法错误 计算机编程的语法是开发人员必须有效遵循以避免代码错误的语法或正确的书写结构。
修复 Python中错误 NameError: Input Name Is Not Defined
发布时间:2023/07/09 浏览次数:55 分类:Python
-
在Python 3.0版本以下,有两个内置方法来获取用户的输入。 一个是输入函数,另一个是 raw_input 函数。 但后来,在 3.X 版本中,两者被结合起来并成为一个单一的输入函数。修复Python中 NameError