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.
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.
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.
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!
Buen material!
Saludos!
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.
También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.