# importiamo il modulo math
# che contiene varie funzioni matematiche
# che possiamo utilizzare tra cui la radice quadrata
# math.sqrt(x)=pow(x,0.5)
import math
def average(x):
''' average(x) x is a vector '''
d=len(x)
av=0
for e in x:
av = av + e
av = float(av) / d
return av
def sig2(x,av=None):
''' sig2(x,av=None) x is a vector '''
d=len(x)
if not av :
av = average(x)
s2=0
for e in x:
dev = e - av
s2 = s2 + dev*dev
if d > 1 :
s2 = float(s2) / (d - 1)
return s2
# in python esiste la variabile ambiente __name__
# essa indica il nome dell'oggetto in esecuzione
# il primo modulo lanciato ha settato il valore
# di __name__ uguale a '__main__'. Se quindi
# scriviamo un file con il codice seguente
# esso sara` eseguito soltanto se lanciato
# direttamente. Mentre non lo sara` se importanto
# in un altro modulo.
if __name__ == '__main__':
numdata=input('number of data = ')
if numdata <= 0 :
print " not enough data ! ", numdata
else:
i = 0
x=[]
while i < numdata :
d=input('give me a value = ')
x.append(d)
i =i+1
av=average(x)
s2=sig2(x,av)
print "data",x
print "average = ",av, "standard deviation =", math.sqrt(s2)