You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中表示i + e^(i*pi)?cmath代码写法及j用法疑问

解答:Python复数表示与欧拉公式表达式优化

首先纠正一个关键错误:你用cmath.sqrt(-1j)来表示数学里的i(√(-1))完全没必要,而且结果不对——cmath.sqrt(-1j)算出来是(0.7071+0.7071j),也就是(1+i)/√2,根本不是你要的虚数单位。

关于虚数单位的写法

在Python里,复数的虚数单位是小写j,直接写1j就等价于数学中的i。你疑问的“无理数后加j是否正确”——答案是肯定的:只要是用来表示复数的虚部,不管前面是整数、浮点数(包括无理数的浮点近似),加j都是Python支持的合法写法,比如2j、cmath.pi*1j、cmath.e*1j都没问题。

正确的代码实现

根据欧拉公式,e^(iπ) = -1,所以你要的表达式i + e^(iπ)结果是-1 + i。用cmath模块的正确代码应该是:

import cmath

# 直接用1j表示虚数单位i
ans = 1j + cmath.e ** (cmath.pi * 1j)
print(ans)  # 输出近似值 (-1+1.2246467991473532e-16j),虚部接近0是浮点精度问题,实际等价于-1+1j

也可以用cmath.exp函数替代幂运算,效果完全一致:

ans = 1j + cmath.exp(cmath.pi * 1j)

内容的提问来源于stack exchange,提问作者Z-Ninja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 20:52:38