Python - Ayuda con un programa

 
Vista:
sin imagen de perfil

Ayuda con un programa

Publicado por Jhon (1 intervención) el 05/06/2017 21:27:05
Buenas Amigos. Tengo problemas con el siguiente programa:
Escribe un programa que lea repetidamente n´umeros hasta que el
usuario introduzca “fin”. Una vez se haya introducido “fin”, muestra por pantalla
el total, la cantidad de n´umeros y la media de esos n´umeros. Si el usuario introduce
cualquier otra cosa que no sea un n´umero, detecta su fallo usando try y except,
muestra un mensaje de error y pasa al n´umero siguiente.


22

Este es el código que llevo y en este momento me arroja los resultados si ingreso cualquier carácter no numerico, he intentado varias maneras y no logro que el programa me finalice unicamente cuando ingreso 'fin'.

Agradezco su ayuda.
Saludos.-
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
sin imagen de perfil

Ayuda con un programa

Publicado por CpA (33 intervenciones) el 05/06/2017 21:49:05
El problema fundamental que tienes es que intentas convertir en entero a la hora de introducir el valor, y el error se produce ahí, por lo que no puedes valorar que es lo que has introducido...

Debes capturar primero el input tal cual (como cadena), veriifcar si es "fin" o no, y luego ya intentar convetir a entero y tratar la excepción si la hubiere...

A demás, creo que es más sencillo trabajar con una lista, capturando todos los valores en ella, y luego realizando las tareas de acumulación y cuentas sobre ella...

Algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
lista = []
while True:
    valor = input("Introduce un número (o 'fin' para terminar): ")
    if valor.lower() in "fin":
        break
    try:
        lista.append(int(valor))
    except ValueError:
        print("Valor introducido incorrecto. Intenta de nuevo...")
 
print("La suma de los números es de: {}".format(sum(lista)))
print("La cantidad de números introducidos es de {}".format(len(lista)))
print("El promedio de valoes ha sido de {}".format(sum(lista)/len(lista)))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Juan Salvador
Val: 8
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con un programa

Publicado por Juan Salvador (4 intervenciones) el 12/08/2019 21:39:38
Hola Cpa, gracias por responder. Existe alguna forma de hacer este ejercicio sin usar las funciones append() y len()??
Porque este ejercicio sale en un libro que estoy leyendo llamado " PYTHON PARA INFORMATICO, explorando la informacion" escrito por Charles Severance, específicamente, sale en el capitulo 5 y hasta este capitulo no se han enseñado las funciones append y lend por lo tanto lo lógico es que este problema pueda resolver sin esas funciones. Estuve un tiempo tratando de resolverlo sin las funciones mencionadas pero creo q no se puede, o por lo menos a mi no se me ocurre como resolverlo.

saludos
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
Imágen de perfil de Juan Salvador
Val: 8
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con un programa

Publicado por Juan Salvador (4 intervenciones) el 12/08/2019 21:40:09
Hola Cpa, gracias por responder. Existe alguna forma de hacer este ejercicio sin usar las funciones append() y len()??
Porque este ejercicio sale en un libro que estoy leyendo llamado " PYTHON PARA INFORMATICO, explorando la informacion" escrito por Charles Severance, específicamente, sale en el capitulo 5 y hasta este capitulo no se han enseñado las funciones append y lend por lo tanto lo lógico es que este problema pueda resolver sin esas funciones. Estuve un tiempo tratando de resolverlo sin las funciones mencionadas pero creo q no se puede, o por lo menos a mi no se me ocurre como resolverlo.

saludos
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
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

Ayuda con un programa

Publicado por tincopasan (1082 intervenciones) el 13/08/2019 03:21:41
los libros enseñan la sintaxis de los lenguajes, a pensar es cuestión propia. No hace falta tanto para resolver esto, voy a usar parte del código que te pasaron y parte del tuyo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
contador = 0
total = 0
 
while True:
    valor = input("Introduce un número (o 'fin' para terminar): ")
    if valor.lower() in "fin":
        break
    try:
        total+=int(valor)
        contador+=1
 
    except ValueError:
        print("Valor introducido incorrecto. Intenta de nuevo...")
 
print("La suma de los números es de: ",total)
print("La cantidad de números introducidos es de: ",contador)
print("El promedio de valores ha sido de:  ",total / contador)

sin listas y sin funciones extras, por las dudas no estén en los capítulos que llevas leídos.
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

Ayuda con un programa

Publicado por Caporolui (1 intervención) el 08/02/2021 18:46:00
1
2
3
4
5
6
7
8
9
10
11
12
13
14
contador=0
valor=0
while True:
    numero=input("introduzca el numero: ")
    if numero=="fin":
        break
    try:
        valor=valor+int(numero)
        contador=contador+1
    except:
        print("valor incorrecto")
print("la suma de los numeros es: ", valor)
print("el conteo de los numeros es: ", contador)
print("el promedio de los numeros es: ", valor/contador)
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
sin imagen de perfil

Ayuda con un programa

Publicado por Luna (2 intervenciones) el 17/06/2022 04:38:10
IMG_20220616_223515
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
sin imagen de perfil

Ayuda con un programa

Publicado por Luna (2 intervenciones) el 17/06/2022 13:32:32
Repetí sin querer, dentro de if la operación que da el resultado de cantidad y total
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
sin imagen de perfil

Ayuda con un programa

Publicado por Matt (1 intervención) el 28/03/2024 08:22:15
code

Comparto mi código, para que te guíes...
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