Yineleme kullanılarak tamsayılar veya kayan noktaların toplamının hesaplanmasıyla ilgili denemeye çalışın. Ancak, 'aralık dışı bir liste dizini' hatası alıyorum. Bu aptalca beni affet ama ben bunun için çok yeni ve hala sadece etrafında oynuyorum. Liste içinde herhangi bir öğe olduğundaliste endeksi aralık dışı (Python 3)
def sum(listOfNumbers):
listOfNumbers == int or float
if len(listOfNumbers) == 1:
return listOfNumbers[0]
else:
return listOfNumbers[0] + sum(listOfNumbers[1:])
for (input, output) in [ ([1.0], 1), ([1,2], 3), ([1,2.0,3], 6) ]:
result = 'PASSED' if sum(input) == output else 'FAILED'
print('Test', input, result)
print(sum([]))
Baskı (sum ([])) 'nin çıktısını ne bekliyorsunuz? Bu durumda ne olduğunu görmek için işlevinizin yürütülmesini görselleştirmeyi deneyin. – Kevin
, çıktının [1.0], [1,2] ve [1,2.0,3] – cedricroux
toplamı olmasını ister. Bir yan not olarak, fonksiyonun toplamı olarak adlandırmak zaten iyi bir fikir değildir. standart kütüphane. –