[英]Invalid Comparison of Complex Error
我有下面的代碼,其中temp[count]
包含一些complex
變量。 但是我收到錯誤TypeError: Invalid comparison of complex
if temp[count] > 0 and isinstance(temp[count], complex) == 0
。
if temp[count] > 0 and isinstance(temp[count], complex) == 0:
print(temp[count])
count += 1
編輯 :
if not isinstance(temp[count], complex):
print('T', temp[count])
if temp[count] > 0:
print('Made it')
print('T', temp[count])
打印一個復數,因此我得到和以前一樣的錯誤。 另外,我執行了print('type',type(temp [count])),它給出了<'class sympy.core.add.Add'>
。 我該如何解決?
type[count]
包含-1.5 + 0.86*I, -1.5 - 0.86*I, -2, -1.0 + 1.0*I
如文檔中所給-
當任何操作數為復數時,
<
,<=
,>
和>=
運算符將引發TypeError異常。
同樣,將復數與任何東西(除等於)進行比較也沒有意義。
如果您只想打印數字(如果它不復雜)(如您在注釋中給出的那樣),則-
如果temp [count]不復雜,我想打印(temp [count])。
你可以做 -
if not isinstance(temp[count], complex):
print(temp[count])
從有問題的最新更新來看,似乎temp
包含更多不同類型的元素,這會引起問題,如果您只想打印某些類型的元素而忽略其余元素,則可以使用isinstance()
僅將那些類型的元素傳遞給元組作為第二個參數。 示例(用於int和float)-
if isinstance(temp[count], (int, float)):
print(temp[count])
上面僅是一個示例,顯示了如何檢查特定元素是否為多種類型之一,您可以對所需的所有類型進行類似的操作。
如果temp[count]
被保證為complex
(但虛部可能為0),並且您正在尋找虛部等於0的復數,則只需獲取temp[count]
的虛部。使用.imag
並將其與0進行比較:
if temp[count].imag != 0:
print(temp[count])
count += 1
否則,如果要獲取非復數(即,甚至要排除(0+0j)
和(2+0j)
),請not isinstance(...)
使用not isinstance(...)
:
if not isinstance(temp[count], complex):
print(temp[count])
count += 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.