Sono nuovo di programmazione e sto cercando di fare i problemi codingbat.com per iniziare. Mi sono imbattuto in questo problema:elementi Saltare in un elenco Python
dato un array calcolare la somma, tranne quando c'è un 13 nella matrice. Se c'è un 13 nell'array, salta il 13 e il numero immediatamente successivo. Ad esempio [1,2,13,5,1] dovrebbe produrre 4 (poiché il 13 e il 5 sono saltati).
Questo è quello che ho finora. Il mio problema è che non so cosa fare quando ci sono più 13 ... E mi piacerebbe imparare la codifica in modo efficiente. Potete aiutare ragazzi? (Sto usando python 3.2) Grazie!
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)
Il tuo esempio dovrebbe dare veramente '4', giusto? 1 + 2 + 1 = 4. – cheeken
@cheeken L'ho cambiato in 4 – jamylak
@ chiunque gareggi per pubblicare soluzioni: si prega di rendersi conto che [1,2,13,5,13,13, -9,13,13,13,13 , 13,1,1] dovrebbe produrre anche 4 ... – Will