• 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 2. Conditions

Dificultad:

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

Tarea«Protección de fortaleza»

💻 Python

Imagina que estás creando una aplicación de calendario simple. Una de las funciones más importantes de dicha aplicación — No permitir al usuario ingresar fechas inexistentes. Por ejemplo, el 30 de febrero o el 31 de abril.

Escribe un programa que le pida al usuario ingresar tres números: día, mes y año. Tu tarea — Verificar si la fecha introducida es real. El programa debe tener en cuenta que en diferentes meses hay diferentes cantidades de días, así como que existen años bisiestos en los que febrero tiene 29 días.

Reglas para la verificación:

  1. Meses con 31 días: Enero (1), Marzo (3), Mayo (5), Julio (7), Agosto (8), Octubre (10), Diciembre (12).
  2. Meses con 30 días: Abril (4), Junio (6), Septiembre (9), Noviembre (11).
  3. Febrero (2) tiene 28 días en el año normal y 29 días en el año bisiesto.
  4. Un año es bisiesto si es divisible por 4, pero no por 100, o si es divisible por 400.

El programa debe mostrar "fecha correcta" si la fecha existe, y "fecha incorrecta" en caso contrario.

Formato de entrada

Día (entero)
mes (entero)
año (número entero)

Formato de salida

El resultado de la verificación (línea)

Ejemplo

Entrada

29
2
2024

Salida

La 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
# Запрашиваем у пользователя три числа: день, месяц, год
day = int(input())
month = int(input())
year = int(input())

# Проверяем базовую корректность введенных данных
if month < 1 or month > 12:
    print("Некорректная дата")
else:
    # Проверяем корректность дня для каждого месяца
    
    # Месяцы с 31 днем: январь(1), март(3), май(5), июль(7), август(8), октябрь(10), декабрь(12)
    if month in [1, 3, 5, 7, 8, 10, 12]:
        if day < 1 or day > 31:
            print("Некорректная дата")
        else:
            print("Корректная дата")
    
    # Месяцы с 30 днями: апрель(4), июнь(6), сентябрь(9), ноябрь(11)
    elif month in [4, 6, 9, 11]:
        if day < 1 or day > 30:
            print("Некорректная дата")
        else:
            print("Корректная дата")
    
    # Февраль (2) - особый случай
    elif month == 2:
        # Проверяем, является ли год високосным
        is_leap_year = False
        if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
            is_leap_year = True
        
        # Проверяем корректность дня для февраля
        if is_leap_year:
            # Високосный год - до 29 дней
            if day < 1 or day > 29:
                print("Некорректная дата")
            else:
                print("Корректная дата")
        else:
            # Обычный год - до 28 дней
            if day < 1 or day > 28:
                print("Некорректная дата")
            else:
                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.