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

为什么Python打印负虚部复数会出现(-0-5j)的奇怪输出?

Python复数输出格式规则说明

Python的复数类型固定由实部、虚部系数两个IEEE754双精度浮点数组成,默认a + bj结构中a为实部,b为虚部系数,打印复数的输出逻辑如下:

示例代码拆解

运行代码:

t1 = 5j
t2 = -5j
print(t1)
print(t2)

得到输出:

5j
(-0-5j)

具体输出规则

  • 虚部系数为正数时,输出会自动省略冗余的正实部和加号:
    5j等价于complex(0.0, 5.0),实部为正0、虚部为正,直接省略实部和加号,输出为5j。
  • 虚部系数为负数时,输出格式会调整为(实部-虚部绝对值j):
    1. 加括号是为了避免歧义,防止前置负号被误认为是对整个复数取反,导致复制执行时得到错误的值。
    2. 这里的-0是浮点数的负零表示,-5j等价于complex(0.0, -5.0),为了保证输出的字符串可以直接作为合法的复数字面量执行、得到和原对象完全一致的结果,Python会将正实部配合后面的减号显示为-0,最终输出为(-0-5j)。
      你可以直接把输出的(-0-5j)作为代码执行,得到的对象和定义的t2完全相等。

内容的提问来源于stack exchange,提问作者Eduard Rostomyan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:27:01