Skip to content

Commit 4e62829

Browse files
committed
check triangle
1 parent 0edf310 commit 4e62829

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

newcodes/answers/q50.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#!/usr/bin/env python
2+
# coding=utf-8
3+
import math
4+
5+
def sorted_sides(sides_lst):
6+
sides = sorted(sides_lst)
7+
x, y, z = sides[0], sides[1], sides[2]
8+
return float(x), float(y), float(z)
9+
10+
def is_triangle(sides_lst):
11+
x, y, z = sorted_sides(sides_lst)
12+
if x >=0:
13+
if (x + y > z):
14+
return True
15+
else:
16+
return False
17+
else:
18+
return False
19+
20+
def side_triangle(sides_lst):
21+
x, y, z = sorted_sides(sides_lst)
22+
if x == y or y == z:
23+
return "isosceles"
24+
elif x == z:
25+
return "equilateral"
26+
else:
27+
return "scalene"
28+
29+
def angle_triangle(sides_lst):
30+
x, y, z = sorted_sides(sides_lst)
31+
difference = z**2 - (x**2 + y**2)
32+
if difference == 0:
33+
return "right"
34+
elif difference > 0:
35+
return "obtuse"
36+
else:
37+
return "acute"
38+
39+
def area_triangle(sides_lst):
40+
x, y, z = sorted_sides(sides_lst)
41+
s = (x + y + z)/2
42+
a = math.sqrt(s*(s-x)*(s-y)*(s-z))
43+
return round(a, 3)
44+
45+
if __name__ == "__main__":
46+
triangle_sides = input("please input three sides of triangle, and split them by space:")
47+
sides_lst = triangle_sides.split()
48+
if is_triangle(sides_lst):
49+
result_side = side_triangle(sides_lst)
50+
result_angle = angle_triangle(sides_lst)
51+
area = area_triangle(sides_lst)
52+
print("The triangle is {0} and {1}. Its area is {2}".format(result_side, result_angle, area))
53+
else:
54+
print("Sorry, the sides cannot be the side of triangle.")

0 commit comments

Comments
 (0)