簡體   English   中英

Python指數運算符和復數

[英]Python exponent operator and complex numbers

python 為什么print(type(-1**0.5))返回float而不是complex

獲取浮點數的負整數的平方根始終在數學上被視為復數。 python指數運算符如何支持獲取complex

print(type(-1**0.5))
 <type 'float'>    

在運算的數學順序中,指數先於乘法,而一元減法算作乘法(乘以 -1)。 因此,您的表達式與-(1**0.5)相同,不涉及任何虛數。

如果你這樣做(-1)**0.5你會在 Python 2 中得到一個錯誤,因為答案不是一個實數。 如果您想要一個復雜的答案,您需要通過執行(-1+0j)**0.5來使用復雜的輸入。 (在 Python 3 中, (-1)**0.5將返回一個復雜的結果。)

嘗試(-1)**0.5代替。

-1**0.5被解析為-(1**0.5) ,等於-1

>>> -1**0.5
-1
>>> (-1)**0.5
(6.123e-17+1j)

首先進行取冪,然后取反其符號。 要獲得您想要的結果,請使用括號確保-符號與1保持一致:

>>> -1**0.5
-1.0
>>> (-1)**0.5
(6.123233995736766e-17+1j)

Python 是正確的,因為-1**0.5(-1)**0.5不同。

第一個將1提高到0.5的冪並否定結果。

第二個將-1提高到相同的冪並按預期返回一個復數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM