2012-03-21 18 views
5

Tüm matematiksel algoritma türleri için bir hesap makinesi uygulaması oluşturuyorum. Bununla birlikte, bir kökün karmaşık olup olmadığını ve bunun için bir istisna olup olmadığını tanımlamak istiyorum. Ben bu geldi:Karmaşık bir sayı belirleme

if x == complex(): 
    print("Error 05: Complex Root") 

Ancak, hiçbir şey tanımlanır ya da ben app çalıştırdığınızda x karmaşık bir kök olduğunu bilerek, baskılı.

+0

Girintiler sizin sorunuzda olduğu gibi mi? Herhangi bir hata var mı? 'If' ifadesinin' else' parçasını ekleyebilir misiniz? Karmaşık() hakkında ne dersiniz? Ona bir argüman iletmeli ve 'True' ya da' False'ı iade etmemelisiniz? – Tadeck

+2

Bir saniye bekleyin - karmaşık bir kök bir hata değilse ne olur? Bazen doğru cevap budur. Bir hata olarak işaretlendiğinden emin misiniz? – duffymo

cevap

12

Ben ne istediğini değil% 100 eminim, ama bir değişken kompleks tipte olup olmadığını kontrol etmek istiyorsanız size isinstance kullanabilirsiniz. Örneğin,

x = 5j 
if isinstance(x, complex): 
    print 'X is complex' 

baskılar

X is complex 
+0

Teşekkürler! İşe yarıyor! – enginefree

7
>>> isinstance(1j, complex) 
True 
+0

Teşekkürler! Bu da işe yarıyor! – enginefree

6

bu deneyin:

if isinstance(x, complex): 
    print("Error 05: Complex Root") 

Bu, 3j, 2 + 0j için hatayı yazdırır, ancak 2 için şey yazmaz vs. 2.12

Ayrıca throwi hakkında düşünün değişken karmaşık olduğunda bir hata (ValueError veya TypeError).