Chciałem napisać program w Pythonie który liczy średnią arytmetyczną, jednak żeby obliczenia znajdowały się w funkcji, napisałem tak:
m=raw_input('podaj ciag liczb ')
m=m.split()
li=len(m)
w=0
def avg(*arg):
n=0
for w in arg:
d=m[w]
n=float(n)+float(d)
if w==(li-1):
k=float(n)/li
print k
for i in range(li):
avg(i)
nie wiem dlaczego ale ten fragment kodu:
n=float(n)+float(d)
źle dodaje do siebie elementy “tablicy”, tzn.
jak wstawiłem np. taki ciąg liczb: 5 7 6 2
to n powinno równać się w pętli odpowiednio:
5
12
18
20
natomiast równa się:
5
7
6
2
Czyli wcale nie dodaje
więc w wyniku programu zamiast (5+7+6+2) / 4 wychodzi 2 / 4