1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| # code pour tester que ca fonctionne
numbers = [ 1, 2.0, 3, 1, 10, -1 ]
def g_numbers():
for n in numbers:
if n < 0:
raise StopIteration
yield float(n)
# code pour la saisie au clavier
def r_numbers():
def get_float():
while True:
f = raw_input('nombre: ')
try:
f = float(f)
except ValueError as e:
print e
continue
except Exception:
raise
return f
while True:
f = get_float()
if f < 0: raise StopIteration
yield f
# c'est la que ca se passe...
gotItem = False
for n in r_numbers(): # ou g_numbers pour les tests...
if not gotItem:
meanBase = Min = Max = n # initialisation
count = 1
gotItem = True # une seule fois
else:
count += 1
meanBase += n
if n < Min: Min = n
if n > Max: Max = n
mean = meanBase / count
print 'count: %(count)d, mean: %(mean)f, max: %(Max)f, min: %(Min)f' % vars() |
Partager