我是编程新手,正在尝试从codingbat.com开始解决问题。我遇到了这个问题:
给定一个数组,计算除了数组中有13的数以外的所有数字之和。如果数组中有13,则跳过它和紧随其后的数字。例如,[1,2,13,5,1]应该得出4(因为跳过了13和5)。
这是我目前的进展。我的问题是当有多个13时,我不知道该怎么做...而且我想高效地学习编程。你们能帮忙吗?(我正在使用Python 3.2)谢谢!
def pos(nums):
for i in nums:
if i == 13:
return nums.index(13)
return False
def sum13(lis):
if pos(lis)!= False:
return sum(lis[:pos(lis)])+sum(lis[pos(lis)+1:])
else:
return sum(lis)
4
,对吧?1+2+1 = 4。 - cheekenfoo != False
,那么这是多余的;只需使用if foo:
即可。 - Wooble