Files
python/exercises/triangle/example.py
2016-01-26 17:24:22 +01:00

31 lines
711 B
Python

class TriangleError(Exception):
pass
class Triangle(object):
def __init__(self, x, y, z):
self.sides = (x, y, z)
if self._invalid_lengths() or self._violates_inequality():
raise TriangleError
def _invalid_lengths(self):
return any([side <= 0 for side in self.sides])
def _violates_inequality(self):
x, y, z = self.sides
return any([
x + y <= z,
x + z <= y,
y + z <= x,
])
def kind(self):
distinct = len(set(self.sides))
if distinct == 1:
return 'equilateral'
elif distinct == 2:
return 'isosceles'
else:
return 'scalene'