• 1
    Entrada y salida de datos
    • Tareas
  • 2
    Condiciones
    • Tareas
  • 3
    Bucle for
    • Tareas
  • 4
    Cadenas de texto
    • Tareas
  • 5
    Bucle while
    • Tareas
  • 6
    Listas
    • Tareas
  • 7
    Matrices 2D
    • Tareas
  • 8
    Diccionarios
    • Tareas
  • 9
    Conjuntos
    • Tareas
  • 10
    Funciones y recursión
    • Tareas
  • к

Lección 5. While cycle

Dificultad:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Tarea«Acumular fondos para compra»

💻 Python

Trabajas como programador en una empresa que crea un "archivo digital de archivos personales". Tu tarea & mdash; Desarrollar un módulo para verificar las fechas introducidas. El sistema debe ser absolutamente confiable y no aceptar fechas incorrectas o imposibles (por ejemplo, el 30 de febrero o el 31 de abril), así como datos en el formato incorrecto.

El programa debe leer las líneas una tras otra hasta que el usuario introduzca & nbsp; 0 . Para cada línea introducida, es necesario verificar: si es una fecha correcta y existente en el & nbsp; formato dd.mm.YYYY .

Formato de entrada

El programa recibe varias líneas de entrada. Cada línea contiene una fecha para verificar o un conjunto arbitrario de caracteres. La entrada de datos finaliza cuando se introduce el símbolo   0 en una línea separada.

Formato de salida

para cada línea ingresada (excepto la línea final & nbsp; 0 ), el programa debe mostrar en una nueva línea:

rn
    rn
  • la fecha correcta & nbsp; & mdash; si la línea es una fecha existente en el formato & nbsp; DD.MM.YYYY . En todos los demás casos (formato incorrecto, fecha inexistente).
  • rn

Ejemplo

Entrada

12.12.2024
31.04.2023
02.29.2023
Hola Mundo
02.29.2024
01/01/2000
0

Salida

La fecha correcta
fecha o formato incorrecto
fecha o formato incorrecto
fecha o formato incorrecto
fecha correcta
fecha correcta

Pista

There will be no clue here, decide for yourself!

main.py
Prueba 1
Prueba 2
Prueba 3
Prueba 4
Prueba 5
Prueba 6
Prueba 7
Prueba 8
Prueba 9
Prueba 10
Solución del desarrollador
import datetime

while True:
    # Считываем очередную строку от пользователя
    input_str = input()

    # Проверяем условие выхода из цикла
    if input_str == '0':
        break

    try:
        # Пытаемся преобразовать строку в дату по заданному формату.
        # Формат '%d.%m.%Y' означает:
        # %d - день месяца с ведущим нулем (01-31)
        # %m - месяц с ведущим нулем (01-12)
        # %Y - год в виде четырех цифр (например, 2024)
        #
        # Эта функция автоматически проверяет и формат, и существование даты.
        # Например, для "30.02.2024" она вызовет ошибку, так как такой даты нет.
        datetime.datetime.strptime(input_str, '%d.%m.%Y')
        
        # Если преобразование прошло успешно, значит дата корректна
        print("Корректная дата")

    except ValueError:
        # Если в процессе преобразования возникла ошибка ValueError,
        # это означает, что либо формат строки не соответствует 'ДД.ММ.ГГГГ',
        # либо сама дата невозможна (например, 31 апреля).
        print("Некорректная дата или формат")

🎉 ¡Felicidades! 🎉

¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.

AD

Publicidad

red-snake blue-snake green-snake

Ejecutando tu código...

Asistente de IA

¡Hola! Soy tu asistente de programación. Hazme cualquier pregunta sobre Python — puedo explicarte funciones, métodos y ayudarte con la tarea actual.