Sympy is not doing the substitution of a symbol with a value when it has a specified assumption

Question:

I’m using the subs method to replace certain parameters in an expression with values prior to solving the equation.

The following simple example works fine:

from sympy import Symbol

Q = Symbol("Q")
exp1 = Q + 1
print(exp1.subs({'Q': 1}))  # prints 2

However, if the symbol has an assumption such as real or positive specified this does not work:

Q = Symbol("Q", positive=True)
exp1 = Q + 1
print(exp1.subs({'Q': 1}))  # prints Q + 1

Why is this and what am I doing wrong?

Asked By: Bill

||

Answers:

Don’t use a string key.

print(exp1.subs({Q: 1}))
Answered By: Unmitigated