为什么我的代码在Python中添加负数时会给出错误的结果?

2024-04-26 20:24:10 发布

您现在位置:Python中文网/ 问答频道 /正文

def hourglassSum(arr):
     totSum = 0
     sum = 0
   for j in range(4):
     for i in range(4):
        sum = arr[j][i] + arr[j][i+1] +arr[j][i+2]
        print(sum)
        if (sum > totSum):
            totSum = sum
   return totSum

我的程序的目的是从数组中找到一些元素并将它们相加。如果一个和大于另一个和,则返回最大和。这个代码适用于正数。但不适用于负数。有人能帮我解释一下原因吗?你知道吗


Tags: in程序目的元素forreturnifdef
1条回答
网友
1楼 · 发布于 2024-04-26 20:24:10

它不起作用,因为负数之和小于0。同时,totSum开始是0,这就是为什么sum > totSum最终永远不会是True。你知道吗

有一种方法可以解决这个问题:

import math
def hourglassSum(arr):
    totSum = -math.inf
    for j in range(4):
        for i in range(4):
            sum = arr[j][i] + arr[j][i+1] +arr[j][i+2]
            if (sum > totSum):
                totSum = sum
   return totSum

当然,这类事情总有一句话:

def hourglassSum(arr):
    return max(arr, key=sum)

相关问题 更多 >