¿No te ha pasado que realizas un programa en donde esperas que el usuario introduzca un dato, pero no es lo que necesitas y tu programa no funciona bien (o no funciona de plano)?
Esto se debe a que debemos validar la entrada del usuario antes de que proceda en nuestro programa, así podemos evitar una gran cantidad de errores. Pero, ¿a qué nos referimos con validar? Es el comprobar que la entrada nos es útil, es decir, que si queremos un número entero, no recibamos un flotante o un carácter, o números negativos, etc.
Cuando sólo son números es simple, pero si introducen un carácter en vez de un número, el programa caerá en un error fatal y no podrá continuar. Hay manera de evitar esto. Supondremos el caso de que tenemos un programa que necesitamos que solo introduzcan valores entre el 1 y 5 y que no pase de ahí hasta que obtengamos un valor deseado. Para este escenario usaríamos la instrucción “try – except”, donde al igual que otras instrucciones de control, nuestro código debe de estar dentado correctamente para funcionar.
En la primera parte, “try:” introduciremos la línea (o líneas) que podrían generar un error en alguna circunstancia (línea 4 y 5). Esto hará que el programa no caiga en un error fatal (aun), buscara una excepción que sea relacionada a ese error, para eso usamos la segunda parte, “except” que va seguido del tipo de excepción, en este caso “ValueError” es la que necesitamos, y las líneas de código que se ejecutaran (líneas 6-8).
En palabras resumidas, le indicamos al programa que intentara obtener el input del usuario siempre y cuando este sea un entero, en caso de que no, no lo registrara.
Si pasa de esa parte el programa, sabes que el valor introducido es un entero, ya solo falta validar si está dentro de nuestro rango con una simple instrucción de comparativa (línea 9). Agregamos las instrucciones necesarias para que el proceso se repita hasta que tengamos el valor necesario y salga en ese momento.

Aquí podemos ver que el programa responde bien ante entradas de datos que no deseamos, manteniéndose firme hasta obtener lo que necesitamos.
La validación es de las partes más importantes en un programa, porque así nos aseguramos de que el programa no fallará por una equivocación por parte del usuario y que siempre estaremos manejando la información deseada =)