Coding for KidsCoding for Kids
Kreative NivåerUtfordringerLærerveiledning
Stem på funksjoner
Avansert Pythonutviklingskurs
Kapittel
>
Nivå

Streng- og tidsmoduler
Kalendermodul

Mål

Sjekk kalenderen og sett datoer for noen av leveringstidslinjene ved å bruke Calendar-modulen.

Det har kommet inn flere forsendelser og det er tidsplaner som må overholdes slik at de kan distribueres i forbindelse med den nye gårdsutbyggingen. Tidligere brukte vi datomodulen for å sette opp fraktetiketter, men nå skal vi sette tidsplaner ved å bruke calendar-modulen. For å kunne benytte modulens klasser og funksjoner, bruk import calendar for å importere alt relevant materiale.

For vårt formål skal vi bruke følgende funksjoner fra calendar-modulen:

  • calendar.calendar(): Viser hele kalenderen for året, tar ett (1) argument, som er året du ønsker å vise.
  • calendar.month(): Viser en kalender for en enkelt måned, tar to (2) argumenter, året og måneden.
  • calendar.isleap(): Sjekker om et år er et skuddår, tar ett (1) argument, som er året du vil sjekke.
  • calendar.leapdays(): Sjekker antall skudd-dager som har akkumulert over årene, tar to (2) argumenter som er årene som dekker perioden du vil sjekke.
  • itermonthdays(): Bruker Calendar()-klassen, itererer gjennom alle dagene i måneden, tar to argumenter, året og måneden.
  • itermonthdates(): Bruker Calendar()-klassen, itererer gjennom alle datoene i måneden, tar to argumenter, året og måneden.
  • monthdayscalendar(): Bruker Calendar()-klassen, itererer gjennom alle ukene i måneden, tar to argumenter, året og måneden. Lagrer dataene i en nestet liste.
  • monthdays2calendar(): Samme som forrige funksjon, men den lagrer ukene og dagene sammen i en todimensjonal liste.

For å starte, gå til det gylne X-merket og sjekk kalenderen. Opprett en variabel kalt cal og lagre verdien av calendar.calendar() med året 2026 som et argument, slik: cal = calendar.calendar(2026). Bruk display()-funksjonen for å vise cal-variabelen du nettopp satte opp.

Etter å ha sjekket og vist kalenderen, gå til det lyse X-merket og se på regnearket på pulten. Bruk read()-funksjonen for å sjekke notatet for den planlagte datomåneden for leveransen. Opprett to variabler, en kalt year og en kalt month, og fyll dem med informasjonen du leste.

Opprett en variabel kalt calendar_month og lagre verdien fra funksjonen calendar.month() ved å bruke variablene year og month som argumenter. Bruk display()-funksjonen for å vise månedskalenderen som vil bli brukt til å sette distribusjonstidsplanene.

Gå til det mørke X-merket over den grønne teppet, der vi skal skrive ned noen datapunkter for å sikre at tidsplanene ikke blir forskjøvet. Opprett to variabler, en kalt leap_year og en kalt leap_days. For variabelen leap_year lagrer du resultatet fra calendar.isleap() med 2026 som argument. Dette lar deg bekrefte om det nåværende prosjektåret er et skuddår. For variabelen leap_days lagrer du verdien fra calendar.leapdays() med verdiene 2020 og 2027 som argumenter. Dette bekrefter antallet skudd-dager som har inntruffet gjennom hele prosjektperioden. Bruk den forhåndsskrevne write()-funksjonen og legg til leap_year og leap_days for å skrive ned dataene.

Gå til det mørke X-merket over den røde teppet og vend deg mot pulten; her skal vi lage en oversikt over månedens plan. Opprett en variabel kalt date og lagre verdien av calendar.Calendar(). Dette oppretter et klasseobjekt som vi kan referere til senere. Opprett en annen variabel kalt day_roster og tildel den en tom streng, som dette: day_roster = "".

Forhåndsskrevet i editoren er det en for-løkke som itererer gjennom kalenderen og lister opp datoene. Bruk funksjonen itermonthdays() og legg til variablene year og month du opprettet tidligere som argumenter. Legg til manglende elementer etter behov for å summere opp oversikten.

for day in dates.itermonthdays(-insert value-, -insert value-): entry = "Day: %s \n" % (day) day_roster += entry

Når løkken er satt opp, følg opp ved å lage en kopi av denne løkken, men erstatt funksjonen itermonthdays() med itermonthdates() og legg til variablene year og month som argumenter. For variabelen entry, la den registrere data slik: entry = "%s \n" % (day). Dette vil gi oss de komplette datoene for prosjektets varighet. Bruk den forhåndsskrevne display()-funksjonen med day_roster-variabelen for å vise den fullstendige oversikten over prosjektets dager i kalenderen.

Gå til det mørke X-merket over den blå teppet og vend deg mot notatet; her skal vi sette opp oppfølgingsukene for prosjektet, katalogisert i lister. Opprett en variabel kalt weeks og lagre verdien av calendar.Calendar(), dette oppretter et klasseobjekt vi kan referere til med funksjonene. Endre verdien til variabelen month til 7 for å justere tidsplanen vi jobber med, slik: month = 7.

Opprett en variabel kalt week_roster og tildel den en tom streng, slik: week_roster = "". Forhåndsskrevet i editoren er det en for-løkke som itererer gjennom kalenderen og lister opp ukedagene. Bruk funksjonen monthdayscalendar() og legg til variablene year og month du opprettet tidligere som argumenter. Legg til manglende elementer etter behov for å summere opp oversikten.

for day in weeks.monthdayscalendar(-insert value-, -insert value-): entry = "%s \n" % (day) week_roster += entry

Når løkken er satt opp, følg opp ved å lage en kopi av denne løkken, men erstatt funksjonen monthdayscalendar() med monthdays2calendar() og legg til variablene year og month som argumenter. Dette vil gi oss de komplette datoene for prosjektets varighet. Bruk den forhåndsskrevne display()-funksjonen med week_roster-variabelen for å vise den fullstendige oversikten over prosjektets ukedager i kalenderen for å fullføre nivået.

Kodebok