# coding: latin-1 import math class nombre_complexe(object): # voir remarque après l'exemple def __init__ (self, a = 0, b= 0): self.a = a self.b = b def __str__ (self) : if self.b == 0 : return "%f" % (self.a) elif self.b > 0 : return "%f + %f i" % (self.a, self.b) else : return "%f - %f i" % (self.a, -self.b) def get_module (self): return math.sqrt (self.a * self.a + self.b * self.b) def set_module (self,m): r = self.get_module () if r == 0: self.a = m self.b = 0 else : d = m / r self.a *= d self.b *= d def get_argument (self) : r = self.get_module () if r == 0 : return 0 else : return math.atan2 (self.b / r, self.a / r) def set_argument (self,arg) : m = self.get_module () self.a = m * math.cos (arg) self.b = m * math.sin (arg) def get_conjugue (self): return nombre_complexe (self.a,-self.b) module = property (fget = get_module, fset = set_module, doc = "module") arg = property (fget = get_argument, fset = set_argument, doc = "argument") conj = property (fget = get_conjugue, doc = "conjugué") c = nombre_complexe (0.5,math.sqrt (3)/2) print "c = ", c # affiche c = 0.500000 + 0.866025 i print "module = ", c.module # affiche module = 1.0 print "argument = ", c.arg # affiche argument = 1.0471975512 c = nombre_complexe () c.module = 1 c.arg = math.pi * 2 / 3 print "c = ", c # affiche c = -0.500000 + 0.866025 i print "module = ", c.module # affiche module = 1.0 print "argument = ", c.arg # affiche argument = 2.09439510239 print "conjugué = ", c.conj # affiche conjugué = -0.500000 - 0.866025 i