【发布时间】:2015-04-22 17:34:43
【问题描述】:
从事 CheckIO 练习,但卡在这里。我需要设计一个函数,它会找到具有偶数索引(第 0、第 2、第 4 ......)的元素的总和,然后将这个总和的数字与数组的最后一个元素相乘。输入是一个数组,输出是一个数字。哦,对于一个空数组,结果必须为零。
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],此函数在应该给出1968 时返回-1476。
【问题讨论】:
-
if len(array) == 0:可以简写为if array:,如果在if中返回就不用else了 -
@TimCastelijns 我不认为在没有深入解释的情况下对遇到此类问题的人说这句话是个好主意。尤其是
if not array;) -
@ThinkChaos 我认为这不需要深入解释,它是基本的python
-
index只是在数组中找到元素并返回元素的第一次出现,因此对于具有 repeated 元素的数组,您的函数将无法工作,(84 是在您的阵列上重复) -
总和中是否包含last元素?