Python cmath如何在exp';s指数?

Python cmath如何在exp';s指数?,python,python-3.x,math,Python,Python 3.x,Math,我知道Python中的cmath用于复杂的数学 import cmath cmath.exp(-2j) 现在我想在其指数中使用一个变量: a = 2 cmath.exp(-a*j) 这将引发一个错误: name 'j' is not defined 如何在exp的指数中使用复数变量?在文本中使用时,j被正确识别为创建了一个复数对象。除此之外,j将被假定为另一个名称,并将触发对其值的查找 您仍然需要在文本中定义它: a = 2j cmath.exp(-a) (-0.4161468365471

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

import cmath
cmath.exp(-2j)
现在我想在其指数中使用一个变量:

a = 2
cmath.exp(-a*j)
这将引发一个错误:

name 'j' is not defined

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

在文本中使用时,
j
被正确识别为创建了一个复数对象。除此之外,
j
将被假定为另一个名称,并将触发对其值的查找

您仍然需要在文本中定义它:

a = 2j
cmath.exp(-a)
(-0.4161468365471424-0.9092974268256817j)
或者,将
a
馈送到
complex

cmath.exp(-complex(0, a))  # or complex(imag=a)

只需将
j
写成
1j
,以便解析器知道它是一个数字,而不是一个数字 名为j的变量

a = 2
cmath.exp(-a*1j)
另一种方法是让变量本身包含一个复数,如 在
a=2j
中,另一个是使用内置的
complex
类名,以“a”作为虚部,明确构造一个复数:

a = 2
cmath.exp(complex(0, -a))

对于不希望在代码中找到复数的人来说,最后一种形式可能更容易阅读。

只需将指数写为
1j