Python - Try, except y catch, Solución al... "ValueError" (Python 3.6.4)

 
Vista:
Imágen de perfil de Matias Glombitza
Val: 10
Ha disminuido su posición en 10 puestos en Python (en relación al último mes)
Gráfica de Python

Try, except y catch, Solución al... "ValueError" (Python 3.6.4)

Publicado por Matias Glombitza (4 intervenciones) el 28/09/2018 02:29:56
Función del programa:
Escriba un programa que pregunte cuántos números se van a introducir, pida esos números y muestre un mensaje cada vez que un número no sea mayor que el primero.


Lo que quiero que haga exactamente:
Cuando ingreso números el programa funciona correctamente, pero yo quiero que se pueda ingresar cualquier tipo de carácter sin que el programa tire error (Especialmente el "ValueError").
O sea, cuando alguien ingresa una cadena de texto imprima "Ingrese un número, no letras: " y el usuario pueda seguir ingresando (Sea números o letras) hasta que se pueda finalizar el programa correctamente (Ingresando números)


Posibles soluciones según mi pensamiento:
Creo que se puede solucionar usando el Try, el except y el catch
o también usando "def"


Programa funcionando (Solamente al ingresar números):

1
2
3
4
5
6
7
8
9
10
11
contador = 0
numeros_a_introducir = int(input("Cuántos números se van a ingresar?: "))
contador = contador + 1
n1 = int(input(f"- - - - - Ingrese el número {contador}: "))
for i in range (numeros_a_introducir - 1):
    contador = contador + 1
    n2 = int(input(f"- - - - - Ingrese el número {contador}: "))
    if n2 <= n1:
        print ("El número ingresado es menor al primero, ingrese uno mayor al anterior")
    else:
        print ("Correcto")
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

Try, except y catch, Solución al... "ValueError" (Python 3.6.4)

Publicado por tincopasan (1082 intervenciones) el 28/09/2018 04:59:15
hay muchas formas de hacerlo, en lo personal me gusta crear mis propias funciones, así no necesito controlar todo el código sino solo lo que necesito, así que en este caso usaré mi función para controlar que lo ingresado sea un número. Otra cosa creo que tu lógica de programación está incompleta así que lo haré a mi manera.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#-*- coding: utf -8 -*-
def input_numero(msj=">>>"):
    numero =0
    while True:
        try:
            numero=int(input(msj))
            break
        except ValueError:
            print("Error, ingrese un número")
    return numero
 
numeros_a_introducir = input_numero("Cuántos números se van a ingresar?: ")
contador = 1
temporal= 0
while contador < numeros_a_introducir + 1:
    a =  input_numero("- - - - - Ingrese el número {} : ".format(contador))
    if temporal >= a:
        print("Error, el número debe ser mayor al anterior")
 
    else:
        contador+=1
        temporal=a
        print("correcto") #prefiero ponerlo al terminar el bucle, pero sigo tu código

Espero se entienda, saludos.
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
Imágen de perfil de Matias
Val: 10
Ha disminuido su posición en 10 puestos en Python (en relación al último mes)
Gráfica de Python

Try, except y catch, Solución al... "ValueError" (Python 3.6.4)

Publicado por Matias (4 intervenciones) el 28/09/2018 11:47:50
Impresionante, hermoso código, muchas gracias!!!
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