修复 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 可以在整个过程中访问,因为它被定义为全局的。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串