<p>我正在Spyder上使用python 3.7。下面是我的简单代码,它将字符串元素['a','b']作为符号存储在列表L中。作为输出,我有一个新的列表L,其中有两个符号[a,b]。但当我试图在计算中使用这些符号时,我得到一个错误,即a&;b没有定义。关于如何解决这个问题有什么建议吗</p>
<p>基本上,我想做的是使用列表中的字符串元素作为符号进行sympy计算。欢迎就其他方法提出任何建议。多谢各位</p>
<pre><code> import sympy as sm
L=['a','b']
print(L)
for j in range(len(L)):
L[j] = sm.symbols(L[j])
B=sm.solve(a**2 - 1, a)
print(B)
</code></pre>
<p>以下是错误:</p>
<pre><code>runfile('C:/Users/bhise/.spyder-py3/temp.py', wdir='C:/Users/bhise/.spyder-py3')
['a', 'b']
Traceback (most recent call last):
File "<ipython-input-43-6826047bb7df>", line 1, in <module>
runfile('C:/Users/bhise/.spyder-py3/temp.py',
wdir='C:/Users/bhise/.spyder-py3')
File "C:\Users\bhise\Anaconda3\lib\site-
packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
execfile(filename, namespace)
File "C:\Users\bhise\Anaconda3\lib\site-
packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/bhise/.spyder-py3/temp.py", line 10, in <module>
B=sm.solve(a**2 - 1, a)
NameError: name 'a' is not defined
</code></pre>