用Python3X编写以下程序,请给多种方法,输入三角形的三条边长,先判断是否可以构成三角形,如果可以,则输出三角形的周长和面积(计算的周长和面积保留一位小数);否则,输出“输入的三边无法构成三角形”。
时间: 2024-05-12 17:21:19 浏览: 171
方法一:
```python
import math
a = float(input("请输入第一条边长:"))
b = float(input("请输入第二条边长:"))
c = float(input("请输入第三条边长:"))
if a + b > c and a + c > b and b + c > a: # 判断是否能构成三角形
p = (a + b + c) / 2 # 计算半周长
area = math.sqrt(p * (p - a) * (p - b) * (p - c)) # 计算面积
perimeter = a + b + c # 计算周长
print("该三角形的面积为:{:.1f}".format(area))
print("该三角形的周长为:{:.1f}".format(perimeter))
else:
print("输入的三边无法构成三角形")
```
方法二:
```python
a, b, c = map(float, input("请输入三角形的三条边长,以空格分隔:").split())
if a + b > c and a + c > b and b + c > a: # 判断是否能构成三角形
p = (a + b + c) / 2 # 计算半周长
area = (p * (p - a) * (p - b) * (p - c)) ** 0.5 # 计算面积
perimeter = a + b + c # 计算周长
print("该三角形的面积为:{:.1f}".format(area))
print("该三角形的周长为:{:.1f}".format(perimeter))
else:
print("输入的三边无法构成三角形")
```
方法三:
```python
a = float(input("请输入第一条边长:"))
b = float(input("请输入第二条边长:"))
c = float(input("请输入第三条边长:"))
if a + b <= c or a + c <= b or b + c <= a: # 判断是否不能构成三角形
print("输入的三边无法构成三角形")
else: # 能构成三角形
perimeter = round(a + b + c, 1) # 计算周长
p = perimeter / 2 # 计算半周长
area = round((p * (p - a) * (p - b) * (p - c)) ** 0.5, 1) # 计算面积
print("该三角形的面积为:{}".format(area))
print("该三角形的周长为:{}".format(perimeter))
```
方法四:
```python
a, b, c = sorted(map(float, input("请输入三角形的三条边长,以空格分隔:").split())) # 排序输入的三边
if a + b <= c: # 判断是否不能构成三角形
print("输入的三边无法构成三角形")
else: # 能构成三角形
perimeter = round(a + b + c, 1) # 计算周长
p = perimeter / 2 # 计算半周长
area = round((p * (p - a) * (p - b) * (p - c)) ** 0.5, 1) # 计算面积
print("该三角形的面积为:{}".format(area))
print("该三角形的周长为:{}".format(perimeter))
```
阅读全文