用列表生成式来编写,假设已有列表 lst sides =[3,4,5,6,6,6,4,4,3],依次存放了3个三角形的三条边长。试编写程序,利用海伦公式计算每个三角形的面积,并将结果存入列表 Ist area 。
时间: 2024-04-20 22:07:39 浏览: 113
6.基本数据类型(3)—-列表
好的,你的第一个问题是关于Python编程的。以下是使用列表生成式和海伦公式计算每个三角形面积的代码:
```python
lst_sides = [3, 4, 5, 6, 6, 6, 4, 4, 3]
lst_area = [(s * (s - i) * (s - j) * (s - k)) ** 0.5 for i, j, k in zip(lst_sides[::3], lst_sides[1::3], lst_sides[2::3]) for s in [(i + j + k) / 2]]
print(lst_area)
```
解释一下代码:在列表生成式中,我们利用zip函数和切片将lst_sides列表中相邻的三个元素分组,然后使用海伦公式计算面积并储存在lst_area列表中。
注意:这种方法只适用于输入列表中包含的三角形数量是三的倍数。如果输入列表中的元素数量不是三的倍数,将会引发“ValueError:在zip对象中,输入序列的长度不同”的错误。
阅读全文