‘’’
写—段程序,让用户输入三角形的三条边长,如果三条边长不能构成三角形,则提示用户重新 输入
如果可以构成三角形,则计算周长和面积
对于用户的输入,首先要约定格式,这里简单的约定为每个边长之间用空格间隔
在获得用户的输入以后,要对输入进行检查,有两点需要检查
(1) 检查是不是输入了三条边的边长,输入2个或者4个都是错误的
(2) 检查输入的内容是不是数值型,如果输入的是字母,那根本驴唇不对马嘴
‘’’
def is_triangle(a, b, c): # 用来判断是不是三角形
return (a + b > c and a + c > b and b + c > a)
def get_edge(line):
# 判断是不是输入的三条百年
edge_list = line.split(' ') # 根据空格来分割‘
if len(edge_list) != 3:
# 如果不是三条边
return False, (0, 0, 0)
try:
# 获得用户的输入, 得到的是字符串, 这里把字符串转成float数值
edge_lst = [float(x) for x in edge_list] #列表生成式
except:
return False,(0,0,0)
return True,(edge_lst[0], edge_lst[1], edge_lst[2])
def main():
while True:
line = input('输⼊入三⻆角形的三个边⻓长,⽤用空格隔开,退出请输⼊入q:')
if line == 'q':
break
is_ok, edge = get_edge(line) #调用get_edge 获得布尔类型和列表类型
if not is_ok:#如果是False
print('输入错误,请重新输入')
continue
if not is_triangle(edge[0], edge[1], edge[2]):
print('不能构成三角形')
continue
#除此之外 就是符合三角形
perimeter = edge[0] + edge[1] + edge[2]
s = perimeter / 2
area = (s * (s - edge[0]) * (s - edge[1]) * (s - edge[2])) ** 0.5
print('周长: {perimeter} 面积:{s}'.format(perimeter=perimeter, s=s))
if __name__ == '__main__':
main()