大一新生,Python初学,想问问这一道题要怎么写代码?

下面第一张图是我写的,第二张图是作业。哪位大神能告诉怎么写这题吗?能顺便纠正一下我的问题也可以,谢谢!
最新回答
一杯子

2024-05-31 10:15:48

  1. 题目没有限定输入的边长一定为整数,应该改为浮点数float

  2. 判断是否能构成三角形还要保证三条边都为正数

  3. 能构成三角形时再计算面积,否则可能出现负数开根号的情况,会报错

  4. 输出要求保留1位小数,要用格式化输出

修改后的代码如下:

import math

x = float(input('请输入三角形的边a:')) # 边长可能为浮点数

y = float(input('请输入三角形的边b:'))

z = float(input('请输入三角形的边c:'))

if x>0 and y>0 and z>0 and x+y>z and x+z>y and y+z>x: # 还要判断是否是正数

    p=(x+y+z)/2

    s=math.sqrt(p*(p-x)*(p-y)*(p-z)) # 能构成三角形的话再计算面积

    print('三角形的周长=%.1f, 面积=%.1f' % (x+y+z, s)) # 格式化输出,保留1位小数

else:

    print('无法构成三角形')

以上代码运行通过,但图片中没有看到输出测试样例,请自行修改print语句以符合输出