Bienvenido a la Comunidad de Treehouse
¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.
¿Buscas aprender algo nuevo?
Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de
Inicia tu prueba gratuita
Ozzy Robledo
6,288 Puntosfunción clean_date()
Escribí esta función mucho menos complicada para limpiar la fecha y me preguntaba si hay una razón por la que algo así no se usó. ¿Me estoy perdiendo algo?
def fecha_limpia(cadena_fecha):
date_obj = datetime.datetime.strptime(date_str, '%B %d, %Y').fecha()
return date_obj
¡Solo tengo curiosidad, gracias!
2 Respuestas
Megan Amendola
Profesor de Treehouse¡Hola! Disculpa la respuesta tardía :) Intenta ejecutar la función con una fecha que no existe como clean_date('June 31, 2020'). Tu función lanzará un error. Querrás mover eso a un try bloque para capturar ese error y asegurarte de que el usuario ingresa una fecha que existe. Podrías pensar "¿Por qué alguien ingresaría una fecha que no existe?" pero según la limpieza de bases de datos y hojas de cálculo que he hecho, te sorprendería la frecuencia con que ocurre. Si recuerdo correctamente, quería asegurarme de que la fecha estuviera 1) en el formato correcto para poder hacer la conversión de una cadena a DateTime y 2) asegurarme de que la fecha existía. Si ejecutas clean_date('06-14-2020') también obtendrás un error ya que la fecha no está en el formato ('%B %d, %Y') que tu código dijo que estaría. ¡Espero que eso ayude!
Ozzy Robledo
6,288 PuntosCuando escribí el código anterior, aún no había llegado al punto en el que solucionamos los errores de entrada incorrecta. Aquí está mi función actualizada:
def fecha_limpia(date_str):
while Verdadero:
try:
date_object = datetime.datetime.strptime(date_str, '%B %d, %Y').fecha()
return date_object
except ValueError:
print('''
\n***ERROR DE FECHA***
\rFormato de fecha incorrecto. Usa el ejemplo a continuación:
\r"January 1, 2020"''')
date_str = input('ingresa la fecha: ')
Esto maneja cualquier entrada con formato incorrecto.
Chris Freeman
68,469 puntosChris Freeman
68,469 puntosBuena pregunta. Quizás Megan Amendola tiene algunos comentarios sobre esto.