在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如何查找未定义的变量并给我错误”-嗯,您请求了有关错误代码的帮助。如果你的意思是别的,请回答你的问题。