Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Validar fecha ingresada por teclado en Python
#7
Hola Daniel, gracias por el código. Yo por mi parte insisto en siempre tener en claro qué excepción quiero capturar y cuál es la línea que potencialmente la origina.

Código:
while True:
    try:
        fecha_str = input('
Ingrese fecha "dd/mm/aaaa"...: ')
        fecha = datetime.strptime(fecha_str, '%d/%m/%Y')
        break
    except:
        print("
No ha ingresado una fecha correcta...")

Lo que ocurre con este código es que cualquier excepción originada en las líneas 3-5 hará que el programa diga "No se ha ingresado una fecha correcta" (por ejemplo, la excepción KeyboardInterrupt si el usuario presiona CTRL + C para terminar el programa). Eso se soluciona fácilmente indicando qué excepción esperamos. Sabemos que strptime() lanza ValueError si el formato de la fecha indicada no es correcto.

Código:
while True:
    try:
        fecha_str = input('
Ingrese fecha "dd/mm/aaaa"...: ')
        fecha = datetime.strptime(fecha_str, '%d/%m/%Y')
        break
    except ValueError:
        print("
No ha ingresado una fecha correcta...")

Pero también sabemos que la línea que lanza el error es la número 4, así que basta con que ella sola esté dentro del bloque try/except.

Código:
while True:
    fecha_str = input('
Ingrese fecha "dd/mm/aaaa"...: ')
    try:
        fecha = datetime.strptime(fecha_str, '%d/%m/%Y')
    except ValueError:
        print("
No ha ingresado una fecha correcta...")
    else:
        break

A propósito de la recomendación de calvicius sobre la formación de cadenas de caracteres te invito a que leas este artículo sobre el tema!

(23-01-2018, 03:52 PM)calvicius escribió: puede resultar mejor usar el método format. Lo puedes examinar aqui:

https://pyformat.info/

Buen material!

Saludos!
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Mensajes en este tema
RE: Validar fecha ingresada por teclado en Python - por Francisco - 23-01-2018, 06:15 PM

Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)