• 1
    Eingabe und Ausgabe
    • Aufgaben
  • 2
    Bedingungen
    • Aufgaben
  • 3
    For-Schleife
    • Aufgaben
  • 4
    Zeichenketten
    • Aufgaben
  • 5
    While-Schleife
    • Aufgaben
  • 6
    Listen
    • Aufgaben
  • 7
    2D-Arrays
    • Aufgaben
  • 8
    Wörterbücher
    • Aufgaben
  • 9
    Mengen
    • Aufgaben
  • 10
    Funktionen und Rekursion
    • Aufgaben
  • к

Lektion 2. Conditions

Schwierigkeit:

Aufgabe«Festungsschutz»

💻 Python

Stellen Sie sich vor, Sie erstellen eine einfache Kalenderanwendung. Eine der wichtigsten Funktionen einer solchen Anwendung — Verhindern Sie, dass der Benutzer nicht existierende Daten eingibt. Zum Beispiel den 30. Februar oder den 31. April.

Schreiben Sie ein Programm, das den Benutzer auffordert, drei Zahlen einzugeben: Tag, Monat und Jahr. Ihre Aufgabe — Überprüfen Sie, ob das eingegebene Datum real ist. Das Programm sollte berücksichtigen, dass verschiedene Monate unterschiedliche Anzahlen von Tagen haben, sowie dass es Schaltjahre gibt, in denen der Februar 29 Tage hat.

Regeln für die Überprüfung:

  1. Monate mit 31 Tagen: Januar (1), März (3), Mai (5), Juli (7), August (8), Oktober (10), Dezember (12).
  2. Monate mit 30 Tagen: April (4), Juni (6), September (9), November (11).
  3. Februar (2) hat 28 Tage im normalen Jahr und 29 Tage im Schaltjahr.
  4. Ein Jahr ist ein Schaltjahr, wenn es durch 4 teilbar ist, aber nicht durch 100, oder wenn es durch 400 teilbar ist.

Das Programm sollte "richtiges Datum" ausgeben, wenn das Datum existiert, und "falsches Datum" andernfalls.

Eingabeformat

Tag (Ganzzahl)
Monat (Ganzzahl)
Jahr (Ganze Zahl)

Ausgabeformat

Das Ergebnis der Überprüfung (Zeile)

Beispiel

Eingabe

29
2
2024

Ausgabe

Das korrekte Datum

Hinweis

There will be no clue here, decide for yourself!

main.py
Test 1
Test 2
Test 3
Test 4
Test 5
Test 6
Test 7
Test 8
Test 9
Test 10
Entwicklerlösung
# Запрашиваем у пользователя три числа: день, месяц, год
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("Корректная дата")

🎉 Glückwunsch! 🎉

Du hast die Aufgabe hervorragend gelöst! Es war schwierig, aber du hast die Lösung gefunden. Du bist dem Meister einen Schritt näher! Mach weiter so.

AD

Werbung

red-snake blue-snake green-snake

Führe deinen Code aus...

KI-Assistent

Hallo! Ich bin dein Programmier-Assistent. Stelle mir beliebige Fragen zu Python — ich erkläre Funktionen, Methoden und helfe dir bei der aktuellen Aufgabe!