Python - No consigo que me haga la media!!!

 
Vista:
sin imagen de perfil
Val: 38
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

No consigo que me haga la media!!!

Publicado por Jose (17 intervenciones) el 30/11/2018 23:07:51
Necesito ayuda para solucionar un problema que no consigo saber porqué no funciona. Se trata de escribir un programa que lea del teclado número a número. La lectura de números termina al introducir un número negativo. El programa debe mostrar la media aritmética de los números pares leídos y la media aritmética de los números impares leídos.
Al ejecutar el programa, en vez de devolver la media de los archivos donde almacena los números pares o impares, me da el primero de los numeros introducidos y no se porqué. Os pongo lo que hice:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
a= int(input("dame un numero:  "))
cont_n_impares= 0
cont_n_pares= 0
cant_impares= 0
cant_pares= 0
while a>0:
     if a % 2 == 0:
        cont_n_pares=cont_n_pares + a
        cant_pares= cant_pares+ 1
        a= int(input("dame un numero:  "))
        media_pares=cont_n_pares/cant_pares
        print("la media de los numeros pares es", media_pares)
 
     else:
        cont_n_impares=cont_n_impares+a
        cant_impares= cant_impares+ 1
        a= int(input("dame un numero:  "))
        media_impares= cont_n_impares/cant_impares
        print("la media de los numeros impares es", media_impares)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

No consigo que me haga la media!!!

Publicado por tincopasan (1082 intervenciones) el 01/12/2018 03:58:48
supongo que buscas algo como esto, porque la verdad no entendí tu lógica de programación.
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
cont_n_impares= 0
cont_n_pares= 0
cant_impares= 0
cant_pares= 0
 
while True:
    a= int(input("dame un numero:  "))
    if a == 0:
        break
    elif a % 2 == 0:
        cont_n_pares+= a
        cant_pares+=  1
    else:
        cont_n_impares+=a
        cant_impares+= 1
 
if cant_pares > 0:
    media_pares=cont_n_pares/cant_pares
else:
    media_pares = 0
if cant_impares > 0:
    media_impares= cont_n_impares/cant_impares
else:
    media_impares = 0
 
print("la media de los numeros pares es {0:.2f}".format( media_pares))
print("la media de los numeros impares es {0:.2f}".format(media_impares))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 38
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

No consigo que me haga la media!!!

Publicado por Jose (17 intervenciones) el 01/12/2018 14:16:48
Hola Tincopasan.
Es justo lo que estaba buscando. Gracias por tu ayuda.
Es muy de agradecer el tiempo que dedicáis algunos a ayudar a los que empiezan.
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar