【发布时间】:2021-02-02 17:55:13
【问题描述】:
我正在尝试编写此程序来计算 2d 列表的周长(基本上将其视为矩形)并且我不断收到此错误。我还需要一些帮助来弄清楚如何在不添加两次角的情况下对“矩形”的列求和。提前感谢您的帮助
def perimeter_sum(arr2d):
col_sum=0
first_row=arr2d[0]
last_row=arr2d[-1]
for i in range(len(arr2d)):
col_sum=arr2d[1+i][0]+arr2d[1+i][-1]
sum = first_row + last_row+col_sum
return sum
a2d = [[1,2,3,4],[5,6,7,9],[9, 0, 1,2]] #error occurred here
perimeter_sum(a2d)
【问题讨论】:
-
发布完整的回溯。
-
错误几乎肯定来自
sum = first_row + last_row+col_sum。first_row和last_row是列表,col_sum是一个数字。您希望该新增功能返回什么? -
arr2d[1+i]将在for循环的最后一次迭代中出错。为什么要加 1? -
哦,对不起,我还在学习
-
first_row和last_row都是列表,而col_sum是一个数字。当应用于两个列表时,“+”运算符将它们连接成一个新的更长的列表,因此first_row + last_row是一个列表。尝试将col_sum添加到该列表会产生错误,因为您无法将+运算符应用于列表和数字。