我知道cmath
中的Python
用于复杂数学。
import cmath
cmath.exp(-2j)
现在我想在其指数中使用变量:
a = 2
cmath.exp(-a*j)
这会引发错误:
name 'j' is not defined
如何在exp的指数中使用复数变量?
答案 0 :(得分:5)
在文字中使用时,j
被正确识别为创建复杂对象。除此之外,j
将被假定为另一个名称,并且将触发其值的查找。
您仍然需要在文字中定义它:
a = 2j
cmath.exp(-a)
(-0.4161468365471424-0.9092974268256817j)
或者,将a
提供给complex
:
cmath.exp(-complex(0, a)) # or complex(imag=a)
答案 1 :(得分:5)
只需将j
写为1j
,以便解析器知道它是一个数字,而不是
变量名为j,
a = 2
cmath.exp(-a*1j)
另一种方法是让你的变量本身包含一个复数
在a = 2j
中,另一个是使用内置complex
类名来使用" a"明确地构造一个复数。作为你想象中的部分:
a = 2
cmath.exp(complex(0, -a))
最后一种形式可能更有可能被不希望在代码中找到复杂数字的人阅读。