卡住以下內容: 返回數組中數字的總和,返回0爲空數組。除了13號碼非常不吉利,所以它不算,13號碼後面的號碼也不算。解決encodebat python列表分片
到目前爲止,我已經寫了:
def sum13(nums):
if 13 not in nums:
return sum(nums)
for i in range(len(nums)):
if nums[i] == 13:
return sum(nums[:i])
13時出現在問題第二次,也沒有後立即計數的數量有問題。任何幫助表示感謝,謝謝。
當你說'return sum(nums [:i])'時,你將在13之後的所有*號碼中捨去,而不是在它後面的號碼之後。你可以說'return sum(nums [:i])+ sum13(nums [i + 2:])',但在sum13([4,6,13,13,4])的情況下,4仍然會被計算在內。爲了解決這個問題,你可以使用'return sum(nums [:i])+ sum13(nums [i + 1 +(nums [i + 1:i + 2]!= [13]):])' – zondo