类型:数值运算
描述
输入的三角形的三条边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)/2
k=(s*(s-a)*(s-b)*(s-c))**0.5
print(f'周长=2*{s:.2f}') # 周长=2*6.00
print(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)/2
print(math.sqrt(s(s-a)(s-b)(s-c))) # 输出与要求数量与格式不符
输出格式多空格
import math
a=eval(input())
b=eval(input())
c=eval(input())
l=a+b+c
print('周长=','{:.2f}'.format(l))
s=(a+b+c)/2
area=math.sqrt(s*(s-a)*(s-b)*(s-c)) # 周长= 等号后面会多一个空格
print('面积=','{:.2f}'.format(area)) # 两个参数默认用空格分隔
缺少精度控制,输入语句多参数
import math
a=int(input("3")) # 多字符3
b=int(input("4"))
c=int(input("5"))
p=(a+b+c)/2
g=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))
```