在python公式中查找变量
当我写这样的代码时在python公式中查找变量,python,Python,当我写这样的代码时 打印(A3*2) python给了我以下错误: name错误:未定义名称“A3” 我试图理解python是如何发现未定义的变量的,并给出类似这样的错误 我想从给定的公式中找到变量,并从中列出一个列表。像这样: >>>formula = (a = b3*2*C2) variables = [a, b3, C2] 这里不应该依赖错误处理。最好将公式作为字符串获取,并使用ast模块对其进行解析 例如: import ast formula = 'a = b3*2
打印(A3*2)
python给了我以下错误:
name错误:未定义名称“A3”
我试图理解python是如何发现未定义的变量的,并给出类似这样的错误
我想从给定的公式中找到变量,并从中列出一个列表。像这样:
>>>formula = (a = b3*2*C2)
variables = [a, b3, C2]
这里不应该依赖错误处理。最好将公式作为字符串获取,并使用
ast
模块对其进行解析
例如:
import ast
formula = 'a = b3*2*C2' # get the formula as a string
parsed = ast.parse(formula) # parse it
for elt in ast.walk(parsed): # walk down the parsed tree
if isinstance(elt, ast.Name): # only process variable names
print(elt.id) # print that name
它将提供:
a
C2
b3
['a', 'C2', 'b3']
要生成变量名列表,您可以使用理解:
names = [i.id for i in ast.walk(ast.parse(formula)) if isinstance(i, ast.Name)]
print(names)
将提供:
a
C2
b3
['a', 'C2', 'b3']
错误“名称“A3”未定义”表示未定义变量A3。这意味着代码中没有初始化变量A3。首先需要给变量A3一个值(我们称为'assign'A3一个值)。因此,您可以使用值1指定A3,例如
A3=1
,代码将正常工作。如果您已经为allready分配了A3值,请发布您的完整代码。我知道如何解决此错误代码,但这不是我要问的。“我正在尝试了解python如何查找未定义的变量并给我错误”-嗯,您请求了有关错误代码的帮助。如果你的意思是别的,请回答你的问题。