Directorio de artículos
1.Descripción del problema
Cuando uso Sympy para resolver problemas integrales definidos en Python, primero defino un objeto Símbolo y luego paso el objeto Símbolo a una expresión compleja, pero se produce un error durante el cálculo del resultado:
q = complex(1,p**2)
...
raise TypeError("can't convert expression to float")
TypeError: can't convert expression to float
Código:
# 声明变量p
p = symbols('p',real=True)
q = complex(1,p**2)
2.Solución
Después de buscar en línea, puede deberse a que el uso de la función compleja () para convertir a un número plural informará un error. Si el código fuente solo se modifica a la siguiente forma, Python aún no puede identificar la definición de la forma plural.
# 声明变量p
p = symbols('p',real=True)
q = 1 + pj
q = 1 + pj
NameError: name 'pj' is not defined
Plan de modificación: multiplica por 1 delante de j para resolver el problema
# 声明变量p
p = symbols('p',real=True)
q = 1 + p*1j