Skip to main content
 首页 » 编程设计

python之复数运算符优先级

2025年05月04日1198°冷暖

这应该是不言自明的

>>> (1+2j).real  #Normal Usage 
1.0 
>>> (1+2j).imag  #Normal Usage 
2.0 
>>> 1+2j.real  #Normal Usage 
1.0 
>>> 1+2j.imag  #Flips Out 
3.0 
>>> 123+657j.real 
123.0 
>>> 123+657j.imag 
780.0 

z.imag 以某种方式将实部和虚部相加。
我发现这很有趣..这是一个错误还是一个有意的功能?

请您参考如下方法:

问题是 1+2j.imag 被解析为 1+(2j.imag)。显然 2j.imag 是 2.0,所以 1+2j 返回 3.0。当您执行 1+2j.real 时,Python 会添加 1 和 2j.real。 2j.real 是 0.0,因此您得到正确答案 1.0 作为返回。

如果像前两个示例一样将复数括起来,您将得到预期的结果。