当我声明一个符号变量时,它可以工作:
>>> from sympy import var
>>> x = var('x')
>>> x + 2
x + 2
现在,出于我的目的,我需要多个变量,例如
s0, s1, ..., s9
,我还需要s0 + 1
,s2 - s1
等操作。代码是什么?这对我不起作用(编辑:我的意思是我可以做到这一点,但是为此,我需要大量更改现有代码):
>>> from sympy import symbols
>>> s = symbols('s0:9'); s
(s0, s1, s2, s3, s4, s5, s6, s7, s8)
>>> s[0] + 1
s0 + 1
EDIT2:
s0, s1, s2, s3, s4, s5, s6, s7, s8, s9 = symbols('s0:10')
很好,但是变量的数量不是固定的。 最佳答案
首先,您应该使用symbols
而不是var
。 var
做了一些魔术,将符号注入到名称空间中,并且只能交互使用。
如果需要任意数量的符号,则需要numbered_symbols
函数,该函数可生成迭代器。 Here是文档。一个例子
>>> N = numbered_symbols('s')
>>> for s, _ in zip(N, range(10)):
... print(s)
s0
s1
s2
s3
s4
s5
s6
s7
s8
s9