Coding for KidsCoding for Kids
Kreativa NivåerUtmaningarLärarguide
Rösta på funktioner
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_days där du lagrar datumet utan tiden med hjälp av date() från variabeln red_date, och konvertera den med str(), så här: red_days = str(red_date.date()). Använd funktionen write() för att märka kistorna med red_days.
  • På det ljusa X-märket, rikta dig mot kistorna och skapa en variabel med namnet red_time där du lagrar tiden utan datum med hjälp av time() från variabeln red_date och konvertera den med str(), så här: red_time = str(red_date.time()). Använd funktionen write() för att märka kistorna med red_time.
  • På det mörka X-märket, rikta dig mot kistorna och skapa en variabel med namnet red_timestamp där du lagrar tidsstämpeln beräknad från variabeln red_date, så här: red_timestamp = red_date.timestamp(). Använd funktionen write() för att märka kistorna med red_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_weekday där du lagrar veckodagen med hjälp av strftime() från variabeln blue_date, så här: blue_day = blue_date.strftime("%a"). Skapa en annan variabel med namnet blue_day och lagra dagens nummer med hjälp av strftime() från variabeln blue_date. Skapa en annan variabel med namnet blue_month och lagra månadens namn, skrivet i sin helhet, med hjälp av strftime() från variabeln blue_date. Infoga variablerna blue_weekday, blue_day och blue_month i den förskrivna funktionen write().
  • På det ljusa X-märket, rikta dig mot kistorna och skapa en variabel med namnet blue_hour där du lagrar timmen, tolv timmars cykel, med hjälp av strftime() från variabeln blue_date. Skapa en annan variabel med namnet blue_minute och lagra minuten med hjälp av strftime() från variabeln blue_date. Skapa en annan variabel med namnet blue_meridian och lagra Meridiem, AM/PM, med hjälp av strftime() från variabeln blue_date. Infoga variablerna blue_hour, blue_minute och blue_meridian i den förskrivna funktionen write().
  • På det mörka X-märket, rikta dig mot kistorna och skapa en variabel med namnet blue_local_date där du lagrar det lokala datumformatet, med hjälp av strftime() från variabeln blue_date. Skapa en annan variabel med namnet blue_local_time och lagra det lokala tidsformatet med hjälp av strftime() från variabeln blue_date. Infoga variablerna blue_local_date, blue_local_time och blue_meridian i den förskrivna funktionen display().

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_day där du lagrar dagen på året med hjälp av strftime() från variabeln green_date. Använd funktionen write() för att märka kistorna med green_day.
  • På det ljusa X-märket, rikta dig mot kistorna och skapa en variabel med namnet green_week där du lagrar veckan på året med hjälp av strftime() från variabeln green_date. Använd funktionen write() för att märka kistorna med green_week.
  • På det mörka X-märket, rikta dig mot kistorna och skapa en variabel med namnet green_timezone där du lagrar UTC-tidszonen med hjälp av strftime() från variabeln green_date. Använd funktionen write() för att märka kistorna med green_timezone.

När alla etiketter på X-märken intill de färgade mattorna har nedtecknats, kommer nivån vara klar.

Kodbok