擅长:python、mysql、java
<p>两个答案(<code>+0.5j</code>和<code>-0.5j</code>)都是正确的,因为它们是<a href="https://en.wikipedia.org/wiki/Complex_conjugate" rel="nofollow noreferrer">complex conjugates</a>——即实部是相同的,虚部是符号翻转的。</p>
<p>查看<a href="https://hg.python.org/cpython/file/tip/Modules/cmathmodule.c#l732" rel="nofollow noreferrer">code</a>可以使行为清晰-结果的虚部始终具有与输入的虚部相同的符号<em>,如第790行和第793行所示:</p>
<pre><code>r.imag = copysign(d, z.imag);
</code></pre>
<p>因为<code>a/(a-1)</code>是<code>0.25</code>,它隐式地<code>0.25+0j</code>得到一个阳性结果;<code>b/(b-1)</code>产生<code>0.25-0j</code>(出于某种原因;不确定为什么它不会导致<code>0.25+0j</code>tbh),所以您的结果也是阴性的。</p>
<p>编辑:<a href="https://stackoverflow.com/questions/13387782/format-of-complex-number-in-python">This question</a>对同一问题有一些有用的讨论。</p>