Форум сайта python.su
0
Дано два числа a и b. Выведите гипотенузу треугольника с заданными катетами.
Офлайн
221
=) и в чем трудность? это настолько сложное задание что вы не можете справиться самостоятельно?
Офлайн
568
JOHN_16, зачем троллите новичка?
Amfibia, если по простому, то так.
class Shape(object): sides_count = 0 def __init__(self): if self.sides_count<3: raise Exception("In the figure should be at least three sides") self.initialized = False self.initialize_begined = False self.sides = list() def begin_initialize(self): self.initialize_begined = True def add_side(self,side): if not self.initialize_begined: raise Exception("The figure should be able to initialize") if side<0: raise Exception("WHAT?") self.sides.append(side) def end_initialize(self): if not self.initialize_begined: raise Exception("The figure should be able to initialize") if len(self.sides)>self.sides_count: raise Exception("Too much sides") if len(self.sides)<self.sides_count: raise Exception("Too little sides") self.initialize_begined=False self.initialized = True def ShapeFabric(sides_count, name): return type(name,(Shape,),{"sides_count":sides_count}) BaseTriangle = ShapeFabric(3, "BaseTriangle") class Triangle(BaseTriangle): def normalize(self): if len(filter(None,self.sides))==self.sides_count: return if len(filter(None,self.sides))<2: print "I want two katets" return katets = [x for x in self.sides if x>0] katets_square = map(lambda x: x**2, katets) katets_sum = sum(katets_square) hypotenuse = math.sqrt(katets_sum) self.sides = [katets[0], katets[1], hypotenuse] triangle = Triangle() triangle.begin_initialize() triangle.add_side(3) triangle.add_side(4) triangle.add_side(0) triangle.end_initialize() triangle.normalize() print triangle.sides
Офлайн
16
Если на python 3, то так:
import math class Shape(object): sides_count = 0 def __init__(self): if self.sides_count<3: raise Exception("In the figure should be at least three sides") self.initialized = False self.initialize_begined = False self.sides = list() def begin_initialize(self): self.initialize_begined = True def add_side(self,side): if not self.initialize_begined: raise Exception("The figure should be able to initialize") if side<0: raise Exception("WHAT?") self.sides.append(side) def end_initialize(self): if not self.initialize_begined: raise Exception("The figure should be able to initialize") if len(self.sides)>self.sides_count: raise Exception("Too much sides") if len(self.sides)<self.sides_count: raise Exception("Too little sides") self.initialize_begined=False self.initialized = True def ShapeFabric(sides_count, name): return type(name,(Shape,),{"sides_count":sides_count}) BaseTriangle = ShapeFabric(3, "BaseTriangle") class Triangle(BaseTriangle): def normalize(self): if len(list(filter(None,self.sides)))==self.sides_count: return if len(list(filter(None,self.sides)))<2: print("I want two katets") return katets = [x for x in self.sides if x>0] katets_square = map(lambda x: x**2, katets) katets_sum = sum(katets_square) hypotenuse = math.sqrt(katets_sum) self.sides = [katets[0], katets[1], hypotenuse] triangle = Triangle() triangle.begin_initialize() triangle.add_side(3) triangle.add_side(4) triangle.add_side(0) triangle.end_initialize() triangle.normalize() print(triangle.sides)
Отредактировано alexbadaloff (Апрель 19, 2013 08:36:16)
Офлайн