Python - try except

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

try except

Publicado por Gustavo (24 intervenciones) el 24/05/2020 18:27:24
Hola:

Estoy queriendo validar una entrada de un entero en un rango, el rango está medianamente manejado.
El tema es que el usuario ingrese caracteres no numéricos, letras o cadenas.
Intenté try except

1
2
3
4
5
6
7
8
9
10
11
12
valido = True
while valido:
    try:
        num = int(input('Ingrese valor: '))
        if num < 5 or num > 10:
            num = int(input('El valor debe ser entre 5 y 10\nIngrese valor: '))
        else:
            valido = False
    except ValueError:
        num = int(input('Debe ingresar numeros enteros.\nIngrese valor: '))
        valido = False
print(num, 'x 3 =', num*3))

Y funciona bien:

1
2
3
4
5
6
======== RESTART: C:/... ========
Ingrese valor: seis
Debe ingresar numeros enteros.
Ingrese valor: 6
6 x 3 = 18
>>>

Pero consideremos que el usuario es un cretino que se cree que sabe mucho inglés.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
======== RESTART: C:/... ========
Ingrese valor: seis
Debe ingresar numeros enteros.
Ingrese valor: six
"Traceback (most recent call last):
  File "C:/...", line 4, in <module>
    num = int(input('Ingrese valor: '))
ValueError: invalid literal for int() with base 10: 'seis'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "C:/...", line 10, in <module>
    num = int(input('Debe ingresar numeros enteros.\nIngrese valor: '))
ValueError: invalid literal for int() with base 10: 'six'"
>>>

Bien.
Ya sé que estoy manejando una excepción dentro de una excepción, y será así mientras el tonto usuario no entienda.
Alguien podría ayudarme?
Desde ya, muchas gracias por la paciencia y el tiempo.
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
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

try except

Publicado por algoritmo (245 intervenciones) el 24/05/2020 20:52:09
Hola

Yo sólo mantendría el INPUT de la fila 4, y sustituiría el resto de INPUT por mensajes print
También quitaría la fila 11

Espero que te sirva :)
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 Gustavo
Val: 64
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

try except

Publicado por Gustavo (24 intervenciones) el 25/05/2020 13:43:59
Gracias por la intención, lo probé, pero no funcionó.

En el except debe hacer algo, manejar la excepción y no solo mostrar algo.

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