Coding for KidsCoding for Kids
Kreative LevelHerausforderungenLehrerhandbuch
Für Funktionen abstimmen
Fortgeschrittener Python-Entwicklungskurs
Kapitel
>
Stufe

String- und Zeitmodule
Datum/Uhrzeit-Modul

Ziel

Passe Aufzeichnungen an und richte Versandtermine für Lieferungen mithilfe der Funktionen des Date & Time-Moduls ein.

Das untere Stockwerk des Anbaus des neuen Baugebiets ist ein Lager, in dem einige der kürzlich gelieferten Lieferungen gelagert werden, die verpackt sind und bereit zum Versand in die umliegenden Bereiche des Neubaus sind. Sie müssen mit ihren korrekten Datums- und Zeitangaben versehen werden, und es muss sichergestellt werden, dass alle bereits angebrachten Etiketten alle relevanten Informationen enthalten. Um dies zu tun, könnten wir uns die Zeit nehmen, Datums- und Zeitangaben manuell zu schreiben und zu formatieren, aber es gibt einen viel schnelleren Weg, dies mithilfe des date and time-Moduls zu tun.

Das date and time-Modul wird importiert, indem man import datetime schreibt. Dies schaltet eine Reihe von leistungsstarken Funktionen frei, die es ermöglichen, formatierte Zeiten und Daten auszulesen und einzustellen, die in Objekten gespeichert werden können. Man kann auch from datetime import timezone, timedelta verwenden, um Zeitzonen festzulegen. Die folgenden Funktionen werden durch den Import des Moduls freigeschaltet:

  • datetime.datetime(): Ermöglicht es dir, eine von dir gewählte Zeit festzulegen und zu speichern. Es nimmt mehrere Argumente entgegen, wie folgt: year, month, day, hour, minute, second, microsecond, timezone. Du musst nicht alle Argumente eingeben, sondern nur die, die du verwenden möchtest.
  • datetime.datetime.now(): Gibt dein aktuelles Datum und deine aktuelle Zeit zurück, so wie es eine Uhr anzeigen würde.
  • datetime.datetime.date(): Gibt nur das Datum des datetime zurück, ohne die Zeit.
  • datetime.datetime.time(): Gibt nur die Zeit des datetime zurück, ohne das Datum.
  • datetime.datetime.timestamp(): Gibt den Zeitstempel des datetime als UNIX-Code zurück.
  • timezone(): Ermöglicht es dir, eine Zeitzone für die Verwendung mit deinen Datums- und Zeitargumenten festzulegen.
  • datetime.strftime(): Ermöglicht es dir, spezifische Informationen von Datum und Zeit zu extrahieren und nach deinen Wünschen mithilfe spezifischer Codes zu formatieren. Für unsere Zwecke verwenden wir die folgenden Codes:
    • "%a" : Wochentag, abgekürzt
    • "%d" : Tag des Monats
    • "%B" : Monatsname, ausgeschrieben
    • "%I" : Stunde, im 12-Stunden-Zyklus
    • "%M" : Minute
    • "%p" : Tagesabschnitt, AM/PM
    • "%x" : Lokales Datumsformat
    • "%X" : Lokales Zeitformat
    • "%j" : Tag des Jahres
    • "%U" : Woche des Jahres
    • "%z" : UTC-Zeitzone

Um loszulegen, gehe zum hellen X-Mark und wende dich dem Schreibtisch zu. Verwende die Funktion read(), um die Verpackungsdaten für die Sendungen sowie die Start- und Enddaten der Projekte zu überprüfen. Notiere die in dem Dokument angegebenen Start- und Enddaten (Monat/Tag/Jahr). Die drei (3) ersten Datenpunkte, die im Memo geschrieben stehen, sowie die Zeitzone sind zur späteren Verwendung in den Funktionen bereits im Code-Editor vorgegeben.

In diesem gleichen Bereich erstelle eine Variable namens today und speichere darin den Rückgabewert von datetime.datetime.now(). Verwende str(), um den Wert in einen lesbaren String umzuwandeln, beispielsweise so: today = str(datetime.datetime.now()). Verwende die Funktion display(), um das heutige Datum im Memo festzuhalten. Damit ist das Datum für die Versandzuteilungen festgelegt, und du kannst beginnen, fehlende Datenpunkte in die notwendigen Bereiche einzufügen.

Gehe zum goldenen X-Mark neben dem Schreibtisch, und hier werden wir die Anzahl der Tage berechnen und notieren, die dieses Projekt in Anspruch nehmen wird. Es gibt zwei Variablen im Editor namens start und end, die datetime speichern. Notiere die zuvor abgelesenen Start- und Enddaten in die vorgesehenen Bereiche. Erstelle eine Variable namens result und speichere darin das Ergebnis einer Subtraktion zwischen den Variablen end und start. Verwende die Funktion str(), um den Wert in ein lesbares String-Format zu konvertieren, beispielsweise so: result = str(end-start). Verwende die Funktion write(), um die Variable result zu notieren und festzuhalten, wie lange dies dauern wird.

Von hier aus gehen wir weiter zum goldenen X-Mark neben dem roten Teppich und bewegen uns hinunter zu den X-Markierungen neben den roten Teppichkisten in der linken Spalte. Hier werden wir spezifische Teile der Verpackungsdaten, die in den Kisten fehlen, mithilfe von datetime() ergänzen. Im Editor wird ein vorgegebenes Datum der Variable red_date zugewiesen, aus dem wir verschiedene Datenbestandteile extrahieren und zur Etikettierung der Kisten verwenden werden.

Für die roten Teppiche:

  • Am goldenen X-Mark, wende dich den Kisten zu und erstelle eine Variable namens red_days. Speichere darin das Datum ohne die Zeit, indem du date() von der Variable red_date verwendest und es mithilfe von str() konvertierst, beispielsweise so: red_days = str(red_date.date()). Verwende die Funktion write(), um die Kisten mit red_days zu etikettieren.

  • Am hellen X-Mark, wende dich den Kisten zu und erstelle eine Variable namens red_time. Speichere darin die Zeit ohne Datum, indem du time() von der Variable red_date verwendest und es mithilfe von str() konvertierst, beispielsweise so: red_time = str(red_date.time()). Verwende die Funktion write(), um die Kisten mit red_time zu etikettieren.

  • Am dunklen X-Mark, wende dich den Kisten zu und erstelle eine Variable namens red_timestamp. Speichere darin den aus der Variable red_date berechneten Zeitstempel, beispielsweise so: red_timestamp = red_date.timestamp(). Verwende die Funktion write(), um die Kisten mit red_timestamp zu etikettieren.

Fahre fort, indem du zu den X-Markierungen vor den blauen Teppichkisten gehst. Wie zuvor gibt es eine Reihe von drei (3) farbigen X-Markierungen, in diesem Fall unter Bezugnahme auf die vorgegebene Variable blue_date, um die Etiketten zu vervollständigen. Gehe die Spalte durch und verwende die Funktion strftime(), um fehlende Elemente zu den Versandetiketten hinzuzufügen. Im Gegensatz zu den vorherigen Funktionen erfordert diese Funktion einen spezifischen Code, um Elemente aus dem Ziel-Datum zu extrahieren und zu formatieren. Zum Beispiel, wenn wir den Wochentag für die Variable blue_date erhalten möchten, verwendest du den Code "%a" mit der Funktion strftime(), beispielsweise so: blue_date.strftime("%a").

Für die X-Markierungen neben den blauen Teppichkisten verwende die Funktion strftime() mit dem spezifisch erforderlichen Code. Sieh dir die zuvor aufgeführte Code-Liste je nach Anforderung an. Für die blauen Teppiche:

  • Am goldenen X-Mark, wende dich den Kisten zu und erstelle eine Variable namens blue_weekday. Speichere darin den Wochentag, indem du strftime() von der Variable blue_date verwendest, beispielsweise so: blue_day = blue_date.strftime("%a"). Erstelle eine weitere Variable namens blue_day und speichere darin den Tag des Monats, indem du strftime() von der Variable blue_date verwendest. Erstelle eine weitere Variable namens blue_month und speichere darin den Monatsnamen, ausgeschrieben, indem du strftime() von der Variable blue_date verwendest. Füge die Variablen blue_weekday, blue_day und blue_month in die vorgegebene write()-Funktion ein.

  • Am hellen X-Mark, wende dich den Kisten zu und erstelle eine Variable namens blue_hour. Speichere darin die Stunde, im 12-Stunden-Zyklus, indem du strftime() von der Variable blue_date verwendest. Erstelle eine weitere Variable namens blue_minute und speichere darin die Minute, indem du strftime() von der Variable blue_date verwendest. Erstelle eine weitere Variable namens blue_meridian und speichere darin den Tagesabschnitt, AM/PM, indem du strftime() von der Variable blue_date verwendest. Füge die Variablen blue_hour, blue_minute und blue_meridian in die vorgegebene write()-Funktion ein.

  • Am dunklen X-Mark, wende dich den Kisten zu und erstelle eine Variable namens blue_local_date. Speichere darin das lokale Datumsformat, indem du strftime() von der Variable blue_date verwendest. Erstelle eine weitere Variable namens blue_local_time und speichere darin das lokale Zeitformat, indem du strftime() von der Variable blue_date verwendest. Füge die Variablen blue_local_date, blue_local_time und blue_meridian in die vorgegebene display()-Funktion ein.

Schließlich gehen wir weiter zum goldenen X-Mark neben dem grünen Teppich und bewegen uns hinunter zu den X-Markierungen neben den grünen Teppichkisten in der rechten Spalte. Hier werden wir weiterhin spezifische Teile der Verpackungsdaten, die in den Kisten fehlen, mithilfe von strftime() hinzufügen. Im Editor wird ein vorgegebenes Datum der Variable green_date zugewiesen, aus dem wir verschiedene Datenbestandteile extrahieren und zur Etikettierung der Kisten verwenden werden.

Für die grünen Teppiche:

  • Am goldenen X-Mark, wende dich den Kisten zu und erstelle eine Variable namens green_day. Speichere darin den Tag des Jahres, indem du strftime() von der Variable green_date verwendest. Verwende die Funktion write(), um die Kisten mit green_day zu etikettieren.

  • Am hellen X-Mark, wende dich den Kisten zu und erstelle eine Variable namens green_week. Speichere darin die Woche des Jahres, indem du strftime() von der Variable green_date verwendest. Verwende die Funktion write(), um die Kisten mit green_week zu etikettieren.

  • Am dunklen X-Mark, wende dich den Kisten zu und erstelle eine Variable namens green_timezone. Speichere darin die UTC-Zeitzone, indem du strftime() von der Variable green_date verwendest. Verwende die Funktion write(), um die Kisten mit green_timezone zu etikettieren.

Sobald alle Etiketten an den X-Markierungen neben den farbigen Teppichen notiert wurden, ist die Ebene abgeschlossen.

Codebuch