You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.7无第三方库实现列表元素相乘计算不规则多边形面积

错误原因

  • 你的代码逻辑完全偏离了需求:你写的j+1是将当前遍历到的坐标数值加1,而非取当前索引的下一个位置的元素
  • 第一种写法的双重for循环是两个列表的笛卡尔积遍历,完全不符合「i位置元素和i+1位置元素相乘」的需求
  • 报错的核心原因是变量实际类型和预期不符:你代码中使用的x_vertices/y_vertices存在部分元素为列表的情况,导致+1操作被识别为列表拼接而非数值加法

正确实现

完全不需要引入第三方库,直接通过索引遍历即可实现需求:

# 你的输入数据,如果源数据存在x_vertices/y_vertices变量中,直接替换变量名即可
x_vert = [1, 2, 3, 4, 5, 1]  
y_vert = [3, 4, 5, 6, 7, 3]

# 实际顶点数:因为末尾已补首元素,所以取长度减1
point_count = len(x_vert) - 1

# 按规则计算两个乘积列表
x_vert_mul = [x_vert[i] * y_vert[i+1] for i in range(point_count)]
y_vert_mul = [y_vert[i] * x_vert[i+1] for i in range(point_count)]

运行后输出的结果和你预期完全一致:

x_vert_mul = [4, 10, 18, 28, 15]
y_vert_mul = [6, 12, 20, 30, 7]

后续计算提示

如果要继续用鞋带公式计算多边形面积,直接用0.5 * abs(sum(x_vert_mul) - sum(y_vert_mul))即可得到最终结果。

内容的提问来源于stack exchange,提问作者Grinnorye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 06:36:10