Das Handling von Daten in jedem Jahr

PythonBeginner
Jetzt üben

Einführung

In diesem Projekt lernst du, wie du ein Python-Skript erstelst, das alle Sonntage in einem gegebenen Jahr ausgibt. Dies ist eine nützliche Fähigkeit für jeden, der in seinen Programmierprojekten mit Daten und zeitbezogenen Aufgaben arbeiten muss.

👀 Vorschau

python Sunday.py 2022
2022-01-02
2022-01-09
2022-01-16
2022-01-23
2022-01-30
2022-02-06
2022-02-13
2022-02-20
...

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du die Module datetime und calendar in Python verwenden, um Daten zu behandeln
  • Wie du eine Funktion schreibst, die alle Sonntage in einem gegebenen Jahr berechnet und zurückgibt
  • Wie du Benutzereingaben und Befehlszeilenargumente in einem Python-Skript behandelst
  • Wie du das Skript erweitern und anpassen kannst, um es flexibler und nutzerfreundlicher zu machen

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Zu verstehen, wie man mit Daten und Zeit in Python umgeht
  • Ein Skript zu schreiben, das alle Sonntage in einem gegebenen Jahr ausgeben kann
  • Das Skript anzupassen, um verschiedene Jahre und Benutzereingaben zu behandeln
  • Dein neues Wissen auf andere datenbezogene Aufgaben in deinen Programmierprojekten anzuwenden

Erstelle die Datei Sunday.py

In diesem Schritt wirst du die Datei Sunday.py erstellen und die Anfangsstruktur des Skripts einrichten.

  1. Erstelle eine Datei Sunday.py im Verzeichnis ~/project.
cd ~/project
touch Sunday.py
  1. Füge den folgenden Code zur Datei hinzu:
import datetime
import sys


## Funktion, um alle Sonntage in einem gegebenen Jahr auszugeben
def print_sundays(year):
    sundays = []  ## Liste, um die Sonntage zu speichern
    date = datetime.date(year, 1, 1)  ## Beginne mit dem 1. Januar des gegebenen Jahres
    delta = datetime.timedelta(days=1)  ## Definiere einen Zeitunterschied von 1 Tag

    ## Suche den ersten Sonntag des Jahres
    while date.weekday()!= 6:  ## 6 repräsentiert Sonntag (Montag ist 0 und Sonntag ist 6)
        date += delta  ## Gehe zum nächsten Tag

    ## Gib alle Sonntage des Jahres aus
    while date.year == year:  ## Schleife, bis sich das Jahr ändert
        sundays.append(
            date.strftime("%Y-%m-%d")
        )  ## Füge den Sonntag zur Liste hinzu (formatiert als YYYY-MM-DD)
        date += datetime.timedelta(
            weeks=1
        )  ## Gehe zum nächsten Sonntag (inkrementiere um 1 Woche)

    return sundays  ## Gebe die Liste der Sonntage zurück


## Lies das Jahr aus dem Befehlszeilenargument
if len(sys.argv) > 1:
    year = int(sys.argv[1])  ## Konvertiere das Befehlszeilenargument in einen Integer
    sundays = print_sundays(year)  ## Rufe die Funktion auf, um die Liste der Sonntage zu erhalten
    for sunday in sundays:
        print(sunday)  ## Gib jeden Sonntag aus
else:
    print(
        "Bitte geben Sie ein Jahr als Befehlszeilenargument an."
    )  ## Zeige eine Fehlermeldung an, wenn kein Jahr angegeben wurde

Dieser Code setzt die grundlegende Struktur des Skripts Sunday.py auf, einschließlich der Funktion print_sundays() und der Behandlung von Befehlszeilenargumenten.

Verstehe den Code

In diesem Schritt wirst du den Zweck und die Funktionalität des Codes in der Datei Sunday.py verstehen.

  1. Die Funktion print_sundays() nimmt einen Parameter year entgegen und gibt eine Liste aller Sonntage in jenem Jahr zurück.
  2. Die Funktion beginnt, indem sie ein datetime.date-Objekt mit dem angegebenen Jahr und dem ersten Tag des Jahres (1. Januar) erstellt.
  3. Danach findet es den ersten Sonntag des Jahres, indem es durch die Tage iteriert, bis der Wochentag 6 (Sonntag) ist.
  4. Sobald der erste Sonntag gefunden ist, tritt die Funktion in eine Schleife ein, die bis zum Ende des Jahres fortgesetzt wird. In jeder Iteration fügt sie den aktuellen Sonntag zur Liste sundays hinzu und geht zum nächsten Sonntag (indem ein Zeitunterschied von 1 Woche hinzugefügt wird).
  5. Schließlich gibt die Funktion die Liste der Sonntage zurück.
  6. Der Hauptteil des Skripts liest das Jahr aus dem Befehlszeilenargument und ruft die Funktion print_sundays() mit dem angegebenen Jahr auf. Anschließend druckt es jeden Sonntag in der Liste.
  7. Wenn kein Befehlszeilenargument angegeben wird, zeigt das Skript eine Fehlermeldung an.

Führe das Skript aus

In diesem Schritt wirst du das Skript Sunday.py ausführen und die Ausgabe beobachten.

  1. Öffne ein Terminal und navigiere zum Verzeichnis /home/labex/project.
  2. Führe das Skript Sunday.py mit einem bestimmten Jahr als Befehlszeilenargument aus:
python Sunday.py 2022

Du solltest die folgende Ausgabe sehen:

2022-01-02
2022-01-09
2022-01-16
2022-01-23
2022-01-30
2022-02-06
2022-02-13
2022-02-20
2022-02-27
2022-03-06
2022-03-13
2022-03-20
2022-03-27
2022-04-03
2022-04-10
2022-04-17
2022-04-24
2022-05-01
2022-05-08
2022-05-15
2022-05-22
2022-05-29
2022-06-05
2022-06-12
2022-06-19
2022-06-26
2022-07-03
2022-07-10
2022-07-17
2022-07-24
2022-07-31
2022-08-07
2022-08-14
2022-08-21
2022-08-28
2022-09-04
2022-09-11
2022-09-18
2022-09-25
2022-10-02
2022-10-09
2022-10-16
2022-10-23
2022-10-30
2022-11-06
2022-11-13
2022-11-20
2022-11-27
2022-12-04
2022-12-11
2022-12-18
2022-12-25

Die Ausgabe zeigt alle Sonntage im Jahr 2022.

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.

✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben