我有这个代码:
def system(into):
global sys
x = into
sis = [eval(i) for i in sys]
return sis
if __name__ == "__main__":
sys = ['x[0]+x[1]','2*x[0]-3*x[1]']
当我执行带有输入的 system() 函数时,我希望能够评估这个方程组。但我收到此错误:NameError:名称“x”未定义。
我该如何解决这个问题?
您可以在 eval 函数中显式传递 x 值列表。另外,不要使用
sys
来命名变量,sys 是内置的 python 模块。除非您显式导入该包,否则它不会导致问题,但这不是一个好的做法。
以下是更正后的代码。
def system(into):
global sys
x = into
sis = [eval(i, {'x': x}) for i in sys] ## pass explicitly
return sis
if __name__ == "__main__":
sys = ['x[0]+x[1]', '2*x[0]-3*x[1]']