我有这个代码:
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()函数时,我希望能够判断这个方程系统.但我遇到了这个错误:Name错误:名称"x"未定义.
我该如何解决这个问题?
我有这个代码:
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()函数时,我希望能够判断这个方程系统.但我遇到了这个错误:Name错误:名称"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]']