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 dudate()von der Variablered_dateverwendest und es mithilfe vonstr()konvertierst, beispielsweise so:red_days = str(red_date.date()). Verwende die Funktionwrite(), um die Kisten mitred_dayszu etikettieren. -
Am hellen X-Mark, wende dich den Kisten zu und erstelle eine Variable namens
red_time. Speichere darin die Zeit ohne Datum, indem dutime()von der Variablered_dateverwendest und es mithilfe vonstr()konvertierst, beispielsweise so:red_time = str(red_date.time()). Verwende die Funktionwrite(), um die Kisten mitred_timezu etikettieren. -
Am dunklen X-Mark, wende dich den Kisten zu und erstelle eine Variable namens
red_timestamp. Speichere darin den aus der Variablered_dateberechneten Zeitstempel, beispielsweise so:red_timestamp = red_date.timestamp(). Verwende die Funktionwrite(), um die Kisten mitred_timestampzu 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 dustrftime()von der Variableblue_dateverwendest, beispielsweise so:blue_day = blue_date.strftime("%a"). Erstelle eine weitere Variable namensblue_dayund speichere darin den Tag des Monats, indem dustrftime()von der Variableblue_dateverwendest. Erstelle eine weitere Variable namensblue_monthund speichere darin den Monatsnamen, ausgeschrieben, indem dustrftime()von der Variableblue_dateverwendest. Füge die Variablenblue_weekday,blue_dayundblue_monthin die vorgegebenewrite()-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 dustrftime()von der Variableblue_dateverwendest. Erstelle eine weitere Variable namensblue_minuteund speichere darin die Minute, indem dustrftime()von der Variableblue_dateverwendest. Erstelle eine weitere Variable namensblue_meridianund speichere darin den Tagesabschnitt, AM/PM, indem dustrftime()von der Variableblue_dateverwendest. Füge die Variablenblue_hour,blue_minuteundblue_meridianin die vorgegebenewrite()-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 dustrftime()von der Variableblue_dateverwendest. Erstelle eine weitere Variable namensblue_local_timeund speichere darin das lokale Zeitformat, indem dustrftime()von der Variableblue_dateverwendest. Füge die Variablenblue_local_date,blue_local_timeundblue_meridianin die vorgegebenedisplay()-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 dustrftime()von der Variablegreen_dateverwendest. Verwende die Funktionwrite(), um die Kisten mitgreen_dayzu etikettieren. -
Am hellen X-Mark, wende dich den Kisten zu und erstelle eine Variable namens
green_week. Speichere darin die Woche des Jahres, indem dustrftime()von der Variablegreen_dateverwendest. Verwende die Funktionwrite(), um die Kisten mitgreen_weekzu etikettieren. -
Am dunklen X-Mark, wende dich den Kisten zu und erstelle eine Variable namens
green_timezone. Speichere darin die UTC-Zeitzone, indem dustrftime()von der Variablegreen_dateverwendest. Verwende die Funktionwrite(), um die Kisten mitgreen_timezonezu etikettieren.
Sobald alle Etiketten an den X-Markierungen neben den farbigen Teppichen notiert wurden, ist die Ebene abgeschlossen.