正在从事CheckIO练习,但仍停留在这里。我需要设计一个函数,该函数将查找具有偶数索引(0th,2nd,4th ...)的元素的总和,然后将该求和的数字与数组的最后一个元素相乘。输入是一个数组,输出是一个数字。哦,对于一个空数组,结果必须为零。

def checkio(array):
    sum = 0
    if len(array) == 0:
        return 0
    else:
        for i in array:
            if array.index(i) % 2 == 0:
                sum = sum + i
        final = sum*(array[len(array)-1])
    return final


例如,对于数组[-37,-36,-19,-99,29,20,3,-7,-64,84,36,62,26,-76,55,-24,84,49,-65,41],该函数在应给出-1476时将返回1968

最佳答案

这是我编写的工作程序。

def checkio(array):
    listSum = 0

    if array:

        for i in range(0, len(array), 2):
            listSum += array[i]

        finalValue = listSum * array[-1]

        return finalValue
    else:
        return 0


首先,它检查数组是否具有任何值。我们可以这样做:if array:。如果数组为空,它将返回0,如您所愿。

现在,这将检查数组中的所有其他元素:range(0, len(array), 2):这意味着i的值将从0开始,在数组的整个长度内继续,并以2计数。

总和在这里添加:listSum += array[i]。这将获取变量listSum并将其值添加到数组中索引i处。 +=运算符是listSum = listSum + array[i]的简写。

函数的最后一部分使用listSum变量,然后将其乘以array[-1],后者将获取数组中的最后一个值,并最终返回该值。

当我在上面运行示例数组时,它应返回1968。

关于python - 涉及列表和索引的基本Python练习遇到麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29805003/

10-09 20:20