Python cmath如何在exp的指数中使用复杂变量?

时间:2016-11-30 12:19:51

标签: python python-3.x math

我知道cmath中的Python用于复杂数学。

import cmath
cmath.exp(-2j)

现在我想在其指数中使用变量:

a = 2
cmath.exp(-a*j)

这会引发错误:

name 'j' is not defined

如何在exp的指数中使用复数变量?

2 个答案:

答案 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))

最后一种形式可能更有可能被不希望在代码中找到复杂数字的人阅读。