-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtriangle.py
More file actions
48 lines (34 loc) · 1.03 KB
/
triangle.py
File metadata and controls
48 lines (34 loc) · 1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
"""
triangle
"""
def equilateral(sides):
"""
equal sides
alternative:
return triangle(sides) and sides[0] == sides[1] == sides [2]
"""
return triangle(sides) and len(set(sides)) == 1
def isosceles(sides):
"""
2 or more equal sides
"""
return triangle(sides) and not scalene(sides)
def scalene(sides):
"""
different sides
alternative:
return triangle(sides) and sides[0] != sides[1] != sides [2] and sides[0] != sides [2]
a, b, c = sorted(sides)
return 0 < a < b < c < a + b
"""
return triangle(sides) and len(set(sides)) == 3
def triangle(sides):
"""
alternative:
return triangle(sides) and sides[0] != sides[1] != sides [2] and sides[0] != sides [2]
a, b, c = sorted(sides)
return a * b * c != 0 and a + b >= c
return all((sides[(index)%3] + sides[(1 + index)%3] >= sides[(2 + index)%3])
and (value > 0) for index, value in enumerate(sides))
"""
return all(sides) and (sum(sides) >= max(sides)*2)