Avancerad Pythonutvecklingskurs
Kapitel
>
Nivå
Sträng- och tidsmoduler
Datum/Tidsmodul
Mål
Justera register och ställ in leveransdatum för förnödenheter med hjälp av modulens datum- och tidsfunktioner.
Våningen under annexets lägre plan i det nya byggområdet är ett lager som innehåller några av de nyligen levererade förnödenheterna som har packats och är redo att skickas till områden runt den nya byggnaden. De behöver märkas med sina korrekta datum och tider, samt se till att redan applicerade etiketter innehåller all relevant information. För att göra detta skulle vi kunna lägga tid på att manuellt skriva och formatera datum och tid, men det finns ett mycket snabbare sätt att göra detta genom att använda datum- och tidsmodulen.
Datum- och tidsmodulen importeras genom att skriva import datetime, detta låser upp en rad kraftfulla funktioner som låter dig läsa och ställa in formaterade tider och datum som du kan lagra i objekt. Du kan även använda: from datetime import timezone, timedelta för att ställa in tidszoner. Följande funktioner låses upp genom att importera modulen:
datetime.datetime(): Låter dig ställa in och lagra en tid du väljer, tar flera argument som följer:year,month,day,hour,minute,second,microsecond,timezone. Du behöver inte ange alla argument, utan bara de du vill använda.datetime.datetime.now(): Returnerar ditt aktuella datum och tid, som de skulle visas på en klocka.datetime.datetime.date(): Returnerar endast datumet, ingen tid ingår.datetime.datetime.time(): Returnerar endast tiden, inget datum ingår.datetime.datetime.timestamp(): Returnerar tidsstämpeln för datumet som en UNIX-kod.timezone(): Låter dig ställa in en tidszon för användning med dina datum- och tidsargument.datetime.strftime(): Låter dig extrahera specifik information om datum och tid och formatera den efter dina önskemål med hjälp av specifika koder. För våra ändamål kommer vi att använda följande koder:"%a": Veckodag, förkortad"%d": Dagen i månaden"%B": Månadens namn, skrivet i sin helhet"%I": Timme, tolv timmars cykel"%M": Minut"%p": Meridiem, AM/PM"%x": Lokalt datumformat"%X": Lokalt tidsformat"%j": Dagen på året"%U": Veckan på året"%z": UTC-tidszon
För att börja, gå till det ljusa X-märket och rikta dig mot skrivbordet, använd funktionen read() för att kontrollera packningsdatumen för leveranserna samt start- och slutdatum för projekten. Notera start- och slutdatumen som anges i dokumentet (månad/dag/år). De tre (3) första datapunkterna som skrivits i memot samt tidszonen är förskrivna i kodeditorn för att underlätta användningen i senare funktioner.
I samma utrymme, skapa en variabel med namnet today och lagra returvärdet från datetime.datetime.now(). Använd str() för att konvertera värdet till en sträng så att det är i ett läsbart format, så här: today = str(datetime.datetime.now()). Använd funktionen display() för att nedteckna dagens datum i memot, med detta är datumet för leveransallokeringen inställt och du kan börja lägga till saknade datapunkter i de nödvändiga områdena.
Gå till det gyllene X-märket intill skrivbordet och här kommer vi att beräkna och nedteckna antalet dagar som detta projekt kommer att ta. Det finns två variabler skrivna i editorn med namnen start och end som lagrar datum och tid. Skriv ner start- och slutdatumen du tidigare läste in i de angivna fälten. Skapa en variabel med namnet result och lagra resultatet av en subtraktion mellan variablerna end och start. Använd funktionen str() för att konvertera värdet till ett läsbart strängformat, så här: result = str(end-start). Använd funktionen write() för att nedteckna variabeln result, för att markera hur lång tid detta kommer att ta.
Härifrån går vi vidare till det gyllene X-märket intill den röda mattan och ner till X-märkena intill de röda mattkistorna i den vänstra kolumnen. Här kommer vi att lägga till specifika delar av packningsdatumen som saknas på kistorna med hjälp av datetime(). I editorn finns ett förskrivet datum tilldelat variabeln red_date, vi kommer att extrahera olika bitar av data och använda dem för att märka kistorna.
För de röda mattorna:
- På det gyllene X-märket, rikta dig mot kistorna och skapa en variabel med namnet
red_daysdär du lagrar datumet utan tiden med hjälp avdate()från variabelnred_date, och konvertera den medstr(), så här:red_days = str(red_date.date()). Använd funktionenwrite()för att märka kistorna medred_days. - På det ljusa X-märket, rikta dig mot kistorna och skapa en variabel med namnet
red_timedär du lagrar tiden utan datum med hjälp avtime()från variabelnred_dateoch konvertera den medstr(), så här:red_time = str(red_date.time()). Använd funktionenwrite()för att märka kistorna medred_time. - På det mörka X-märket, rikta dig mot kistorna och skapa en variabel med namnet
red_timestampdär du lagrar tidsstämpeln beräknad från variabelnred_date, så här:red_timestamp = red_date.timestamp(). Använd funktionenwrite()för att märka kistorna medred_timestamp.
Fortsätt sedan med att gå till X-märkena framför de blå mattkistorna. Precis som tidigare finns det en serie med tre (3) färgade X-märken, i detta fall med referens till den förskrivna variabeln blue_date för att slutföra etiketterna. Gå igenom kolumnen och använd funktionen strftime() för att lägga till saknade element i fraktetiketterna. Till skillnad från de tidigare funktionerna kräver denna en specifik kod för att extrahera och formatera element i måldatumet. Till exempel, om vi vill ha veckodagen för variabeln blue_date kommer du att använda koden "%a" tillsammans med funktionen strftime() så här: blue_date.strftime("%a").
För X-märkena intill de blå mattkistorna, använd funktionen strftime() med den specifika koden som krävs. Se igenom den tidigare angivna kodlistan beroende på kraven. För de blå mattorna:
- På det gyllene X-märket, rikta dig mot kistorna och skapa en variabel med namnet
blue_weekdaydär du lagrar veckodagen med hjälp avstrftime()från variabelnblue_date, så här:blue_day = blue_date.strftime("%a"). Skapa en annan variabel med namnetblue_dayoch lagra dagens nummer med hjälp avstrftime()från variabelnblue_date. Skapa en annan variabel med namnetblue_monthoch lagra månadens namn, skrivet i sin helhet, med hjälp avstrftime()från variabelnblue_date. Infoga variablernablue_weekday,blue_dayochblue_monthi den förskrivna funktionenwrite(). - På det ljusa X-märket, rikta dig mot kistorna och skapa en variabel med namnet
blue_hourdär du lagrar timmen, tolv timmars cykel, med hjälp avstrftime()från variabelnblue_date. Skapa en annan variabel med namnetblue_minuteoch lagra minuten med hjälp avstrftime()från variabelnblue_date. Skapa en annan variabel med namnetblue_meridianoch lagra Meridiem, AM/PM, med hjälp avstrftime()från variabelnblue_date. Infoga variablernablue_hour,blue_minuteochblue_meridiani den förskrivna funktionenwrite(). - På det mörka X-märket, rikta dig mot kistorna och skapa en variabel med namnet
blue_local_datedär du lagrar det lokala datumformatet, med hjälp avstrftime()från variabelnblue_date. Skapa en annan variabel med namnetblue_local_timeoch lagra det lokala tidsformatet med hjälp avstrftime()från variabelnblue_date. Infoga variablernablue_local_date,blue_local_timeochblue_meridiani den förskrivna funktionendisplay().
Slutligen, går vi vidare till det gyllene X-märket intill den gröna mattan och ner till X-märkena intill de gröna mattkistorna i högra kolumnen. Här kommer vi att fortsätta att lägga till specifika delar av packningsdatumen som saknas på kistorna med hjälp av strftime(). I editorn finns ett förskrivet datum tilldelat variabeln green_date, vi kommer att extrahera olika delar av data och använda det för att märka kistorna.
För de gröna mattorna:
- På det gyllene X-märket, rikta dig mot kistorna och skapa en variabel med namnet
green_daydär du lagrar dagen på året med hjälp avstrftime()från variabelngreen_date. Använd funktionenwrite()för att märka kistorna medgreen_day. - På det ljusa X-märket, rikta dig mot kistorna och skapa en variabel med namnet
green_weekdär du lagrar veckan på året med hjälp avstrftime()från variabelngreen_date. Använd funktionenwrite()för att märka kistorna medgreen_week. - På det mörka X-märket, rikta dig mot kistorna och skapa en variabel med namnet
green_timezonedär du lagrar UTC-tidszonen med hjälp avstrftime()från variabelngreen_date. Använd funktionenwrite()för att märka kistorna medgreen_timezone.
När alla etiketter på X-märken intill de färgade mattorna har nedtecknats, kommer nivån vara klar.