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
datetimeundcalendarin 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.
- Erstelle eine Datei
Sunday.pyim Verzeichnis~/project.
cd ~/project
touch Sunday.py
- 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.
- Die Funktion
print_sundays()nimmt einen Parameteryearentgegen und gibt eine Liste aller Sonntage in jenem Jahr zurück. - Die Funktion beginnt, indem sie ein
datetime.date-Objekt mit dem angegebenenJahrund dem ersten Tag des Jahres (1. Januar) erstellt. - Danach findet es den ersten Sonntag des Jahres, indem es durch die Tage iteriert, bis der Wochentag 6 (Sonntag) ist.
- 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
sundayshinzu und geht zum nächsten Sonntag (indem ein Zeitunterschied von 1 Woche hinzugefügt wird). - Schließlich gibt die Funktion die Liste der Sonntage zurück.
- 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. - 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.
- Öffne ein Terminal und navigiere zum Verzeichnis
/home/labex/project. - Führe das Skript
Sunday.pymit 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.



