欢迎光临我的blog!专栏记录本萌新初学python解题情况,欢迎大家交流思考
题目如上,较为简单,需要掌握分支结构
【解】
首先,获取三角形三边长a,b,c的值存放在list中,并升序排序
a,b,c=map(int,input("请输入三角形边长,用英文逗号隔开:").split(","))
l=[a,b,c]
l.sort()
*这里用到了 map函数,split函数,sort函数,都是较为重要的!需要掌握
之后判断是否构成三角形并输出周长和面积
if l[0]+l[1]>l[2]:
print("三角形的周长为:",sum(l))
s=sum(l)/2 #s为半周长
print("三角形的面积为",(s*(s-a)*(s-b)*(s-c)) ** 0.5)
else:
print("不满足三角形要求")
*由于提前升序排序,此时只用判断较短两边的长度和大于第三边即可
*面积用到海伦公式,这是中学需要掌握的
最后在构成三角形的if分支中嵌套分支,用以判断三角形类型
if l[0]**2+l[1]**2==l[2]**2:
type="直角三角形"
elif l[0]**2+l[1]**2>l[2]**2:
type="锐角三角形"
elif l[0]**2+l[1]**2<l[2]**2:
type="钝角三角形"
print("该三角形的类型为:%s"%type)
完整代码如下
a,b,c=map(int,input("请输入三角形边长,用英文逗号隔开:").split(","))
l=[a,b,c]
l.sort()
if l[0]+l[1]>l[2]:
print("三角形的周长为:",sum(l))
s=sum(l)/2 #s为半周长
print("三角形的面积为",(s*(s-a)*(s-b)*(s-c)) ** 0.5)
if l[0]**2+l[1]**2==l[2]**2:
type="直角三角形"
elif l[0]**2+l[1]**2>l[2]**2:
type="锐角三角形"
elif l[0]**2+l[1]**2<l[2]**2:
type="钝角三角形"
print("该三角形的类型为:%s"%type)
else:
print("不满足三角形要求")
水平有限,请多多包涵!
欢迎在评论区发表您的意见!!谢谢啦