类型:数值运算
描述
输入的三角形的三条边a、b、c 的长度,计算并依次输出三角形的周长和面积,结果严格保留2位小数。测试用例的数据保证三角形三边数据可以构成三角形。 三角形面积计算公式:
,其中s=(a+b+c)/2。
import math #导入math库math.sqrt(x)#调用sqrt函数实现开平方运算,x表示要求值的数据# 或用幂运算 x ** 0.5 表示开平方
输入格式
分三行输入 3 个浮点数,表示三角形的三个边长
输出格式
周长=xx
面积=xx
示例
输入:
3
4
5
输出:
周长=12.00
面积=6.00
解析:
- 有3行输入,各用一个input()函数
- 每行输入一个浮点数,用float()函数
- 表达式需要转为python计算表达式
- 不能省略乘号,所有乘法须明确用 * 表示
- 开平方可以用x ** 0.5 或sqrt()函数
- 若用sqrt,需import math
常见问题
str.format()和f-string构成的字符串不能再参与数值运算,引号中的字符串只能原样输出
a=float(input())b=float(input())c=float(input())s=(a+b+c)/2k=(s*(s-a)*(s-b)*(s-c))**0.5print(f'周长=2*{s:.2f}') # 周长=2*6.00print(f'面积={k:.2f}')
缺少乘号
print(math.sqrt(s(s-a)(s-b)(s-c))) # s和后面各括号间少乘号
应用math模块中的函数但未导入math模块 ```python
缺少math导入
a=float(input()) b=float(input()) c=float(input()) s=(a+b+c)/2 print(math.sqrt(s(s-a)(s-b)(s-c)))
4. 输出与要求不符```python# 缺少math导入a=float(input())b=float(input())c=float(input())s=(a+b+c)/2print(math.sqrt(s(s-a)(s-b)(s-c))) # 输出与要求数量与格式不符
输出格式多空格
import matha=eval(input())b=eval(input())c=eval(input())l=a+b+cprint('周长=','{:.2f}'.format(l))s=(a+b+c)/2area=math.sqrt(s*(s-a)*(s-b)*(s-c)) # 周长= 等号后面会多一个空格print('面积=','{:.2f}'.format(area)) # 两个参数默认用空格分隔
缺少精度控制,输入语句多参数
import matha=int(input("3")) # 多字符3b=int(input("4"))c=int(input("5"))p=(a+b+c)/2g=math.sqrt(p*(p-a)*(p-b)*(p-c))print("周长="+str(a+b+c)) # 缺精度print("面积="+str(g))
输入函数名错

import math
a = float(imput())
b = float(imput())
c = float(imput())
s = (a + b + c) / 2
m = (s * (s - a) * (s - b) * (s - c)) ** 0.5
n = (a + b + c)
print(f"周长={n:.2f}")
print(f"面积={m:.2f}")
- 输出格式错,输出的字符串放大括号外面 ```python import math a=float(input()) b=float(input()) c=float(input()) n=a+b+c s=(a+b+c)/2 area=math.sqrt(s(s-a)(s-b)*(s-c)) print(“{周长=:.2f}”.format(n)) print(“{面积=:.2f}”.format(area))
```
