1.问题描述
在Python中利用Sympy求解定积分问题时,我首先定义一个Symbol对象,之后将Symbol对象传入复数形式的表达式中,结果计算时出现报错:
q = complex(1,p**2)
...
raise TypeError("can't convert expression to float")
TypeError: can't convert expression to float
代码:
# 声明变量p
p = symbols('p',real=True)
q = complex(1,p**2)
2.解决方案
经过网上查询,可能是因为使用complex()函数转换成复数会报错,如果对源代码仅修改成以下形式python仍无法辨别复数形式的定义。
# 声明变量p
p = symbols('p',real=True)
q = 1 + pj
q = 1 + pj
NameError: name 'pj' is not defined
修改方案:在j前面乘以1即可解决
# 声明变量p
p = symbols('p',real=True)
q = 1 + p*1j