View Full Version : python: calcola media voti
novicedario88
11-01-2012, 15:53
ne ho provate di tutti i colori...ma non mi esce, perchè?
esami=input("inserisci numero esami\n")
for i in range(esami):
voto=[input("voto")]
def media(voto,esami):
return sum (voto) / (float(esami))
print media(voto,esami)
clockover
11-01-2012, 17:51
ne ho provate di tutti i colori...ma non mi esce, perchè?
cosa intendi con: "non mi esce"?
StefanoD66
11-01-2012, 18:56
non ti esce perché dividi l'ultimo voto immesso con il numero dei voti.
devi prima sommare tutti i voti.
Non metto esempi perché non so se vuoi arrivarci da solo o no.
Ma basta che chiedi...
mesonepigreco
11-01-2012, 22:02
Non capisco lo scopo di questo codice:
Se vuoi fare una media dovresti sommare tutti i voti e dividerli per il numero di voti. Poi se vuoi inserirli in una lista devi usare il metodo append della lista, così conservi tutti i voti precedenti e non li sovrascrivi con l'ultimo.
Nella funzione della media devi fare una sommatoria di tutti gli elementi della lista, la fai con un ciclo for e poi dividi il risultato con gli esami.
novicedario88
12-01-2012, 15:29
grazie ai vostri consigli l'ho modificato un pò con "for in range":
a=[int(input("voto %d\n"%(i+1)))for i in range(input("numero voti\n"))]
def media(a):
return sum (a)/(float(len(a)))
print "la media è %d"%(media(a))
secondo voi si può modificare in meglio, ovvero sintetizzare maggiormente?
grazie.
p.s. sono inesperto come è intuibile, scusate l'ovvietà del mio problema
StefanoD66
13-01-2012, 13:08
print "la media è %d"%(media(a))
scritto così non ti funziona, ti da solo interi.
se provi a dare 4 voti (4, 3, 2, 1 - tot 10, media 2,5) ti restituisce 2.
al posto di %d usa %f
per sintetizzare ulteriormente puoi eliminare media():
a=[int(input("voto %d\n"%(i+1)))for i in range(input("numero voti\n"))]
print "la media e'",sum(a)/float(len(a))
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.