当我写这样的代码时
print(A3*2)
python给了我这个错误:
NameError: name 'A3' is not defined
我试图了解 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
要生成变量名称列表,您可以使用理解:
names = [i.id for i in ast.walk(ast.parse(formula)) if isinstance(i, ast.Name)]
print(names)
会给:
['a', 'C2', 'b3']
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句