• 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 5. While cycle

Schwierigkeit:

Aufgabe«Geld für Kauf ansammeln»

💻 Python

Sie arbeiten als Programmierer in einem Unternehmen, das ein "digitales Archiv persönlicher Dateien" erstellt. Ihre Aufgabe & mdash; Entwickeln Sie ein Modul zur Überprüfung der eingegebenen Daten. Das System soll absolut zuverlässig sein und keine falschen oder unmöglichen Daten akzeptieren (z. B. den 30. Februar oder 31. April) sowie Daten im falschen Format.

Das Programm muss die Zeilen nacheinander einlesen, bis der Benutzer & nbsp; 0 eingibt. Für jede eingegebene Zeile muss überprüft werden, ob es sich um ein korrektes, existierendes Datum im & nbsp; dd.mm.YYYY -Format handelt.

Eingabeformat

Das Programm erhält mehrere Zeilen als Eingabe. Jede Zeile enthält entweder ein Datum zur Überprüfung oder eine beliebige Zeichenfolge. Die Dateneingabe endet, wenn in einer separaten Zeile das Symbol   0 eingegeben wird.

Ausgabeformat

für jede eingegebene Zeile (außer der letzten Zeile & nbsp; 0 ) soll das Programm in einer neuen Zeile ausgeben:

  • korrektes Datum & nbsp; & mdash; Wenn die Zeile ein existierendes Datum im & nbsp; DD.MM.YYYY Format ist. In allen anderen Fällen (falsches Format, nicht existierendes Datum).

Beispiel

Eingabe

12.12.2024
31.04.2023
02.29.2023
Hallo Welt
02.29.2024
01/01/2000
0

Ausgabe

Das korrekte Datum
falsches Datum oder Format
falsches Datum oder Format
falsches Datum oder Format
korrektes Datum
korrektes 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
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("Некорректная дата или формат")

🎉 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!