为什么这个函数没有从数组中返回正确的数字

Why is this function not returning the correct number from the array

此函数按预期为最小值选择了 -70,但是当它应该选择 54 作为最大值时却选择了 43 作为最大值。我没有像预期的那样得到 124,而是只得到 113。任何见解将不胜感激。

def difference_max_min(lst):
    minn = lst[0]
    maxx = lst[0]
    for i in range(0, len(lst)):
        if lst[i] < minn:
            minn = lst[i]
        if lst[i] > maxx:
            maxx = lst[i]
            print(minn)
            print(maxx)
            return maxx - minn


print(difference_max_min([-70, 43, 34, 54, 22]))

我可能可以通过对列表进行排序并仅获取第一个和最后一个索引并以这种方式减去它们来更轻松地完成此操作,但我无法终生理解为什么这种方法不起作用。

P.S。指纹只在那里,因为我正在尝试解决问题。

缩进问题:

def difference_max_min(lst):
    minn = lst[0]
    maxx = lst[0]
    for i in range(0, len(lst)):
        if lst[i] < minn:
            minn = lst[i]
        if lst[i] > maxx:
            maxx = lst[i]
    print(minn)
    print(maxx)
    return maxx - minn


print(difference_max_min([-70, 43, 34, 54, 22]))

只是为了提供一点帮助,请尝试 运行 调试器来检查代码。我会请您查看 pdb。这将有助于调试这些情况。

将 return 语句放在 if 语句之外。否则你 return 当你的程序第一次找到一个大于 maxx 的元素时的区别。