我正在Spyder上使用python 3.7。下面是我的简单代码,它将字符串元素['a','b']作为符号存储在列表L中。作为输出,我有一个新的列表L,其中有两个符号[a,b]。但当我试图在计算中使用这些符号时,我得到一个错误,即a&;b没有定义。关于如何解决这个问题有什么建议吗
基本上,我想做的是使用列表中的字符串元素作为符号进行sympy计算。欢迎就其他方法提出任何建议。多谢各位
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)
以下是错误:
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
你应该按照你想要的方式来定义你的符号
前。 [a,b,c]=sm.符号('a,b,c')
现在您可以在代码中使用a、b、c
在L[j]=sm.symbols(L[j])中使用它的方式,L[j]实际上并没有将a作为变量
或者在您的情况下,您可以使用它:
您可以这样尝试:
然后在任何你想要的地方使用
a
和b
相关问题 更多 >
编程相关推荐