Python 尝试定义复杂指数时出现语法错误

Python 尝试定义复杂指数时出现语法错误,python,math,Python,Math,我的函数在定义firstHeight的行上给了我一个语法错误。我认为这是因为我无法用变量定义复数,正如我所尝试的: def GetE(x1, x2, k, x, z, N): firstHeight = math.exp(((k/(2*math.pi*z)) * ((x-x1) ** 2))j) 并且还收到一个语法错误。有人知道如何解决这个问题吗?math不支持复数,因为您有: 或者您可以使用NumPy: import math, cmath cmath.exp(((k/(2*mat

我的函数在定义firstHeight的行上给了我一个语法错误。我认为这是因为我无法用变量定义复数,正如我所尝试的:

def GetE(x1, x2, k, x, z, N):
    firstHeight = math.exp(((k/(2*math.pi*z)) * ((x-x1) ** 2))j)

并且还收到一个语法错误。有人知道如何解决这个问题吗?

math
不支持复数,因为您有:

或者您可以使用
NumPy

import math, cmath

cmath.exp(((k/(2*math.pi*z)) * ((x-x1) ** 2))*1j)
# (0.998966288513345+0.045457171204028084j)

正如@GreenCoveGuy所指出的,你不能用
j
将非文字转换成复数。您可以改为使用
complex()
1j

后缀
j
只能用于虚拟文字,不能用于变量。要从变量中获得负虚数,请将该变量乘以
-1j

np.exp(((k/(2*np.pi*z)) * ((x-x1) ** 2))*1j)
#(0.998966288513345+0.045457171204028084j)

@他试图创建一个虚数。
j
是复数的一部分,而不是一个运算符作用于任意表达式。不过,您可以使用
复数(0,((k/(2*math.pi*z))*((x-x1)**2))
。使用
(k)j
获得复数就像使用
(k).5
获得浮点数一样。数字文字不能像那样混合。别忘了你可以投票并接受答案。看,谢谢!而且,您不能使用
j
将非文本转换为复数。
complex()
函数可以用来代替Yes也要指出的,添加到答案@green谢谢!
np.exp(((k/(2*np.pi*z)) * ((x-x1) ** 2))*1j)
#(0.998966288513345+0.045457171204028084j)
firstHeight = math.exp(((k/(2*math.pi*z)) * ((x-x1) ** 2)) * -1j)
test = 2 + k * -1j