Coding for KidsCoding for Kids
Kreativní ÚrovněVýzvyPrůvodce pro Učitele
Hlasovat pro funkce
Pokročilý kurz vývoje v Pythonu
Kapitola
>
Úroveň

Řetězcové a časové moduly
Kalendářový modul

Cíl

Zkontrolujte kalendář a nastavte data pro některé dodací lhůty pomocí modulu Calendar.

Existuje několik zásilek, které dorazily, a harmonogramů, které je třeba dodržet, aby mohly být rozděleny kolem nové výstavby farmy. Dříve jsme používali modul date pro nastavení přepravních štítků, nyní nastavíme harmonogramy pomocí modulu calendar. Aby bylo možné využít třídy a funkce tohoto modulu, použijte příkaz import calendar k importování veškerých potřebných materiálů.

Pro naše účely budeme používat následující funkce modulu calendar:

  • calendar.calendar(): Zobrazí celý kalendář pro daný rok, bere jeden (1) argument, a to rok, který chcete zobrazit.
  • calendar.month(): Zobrazí kalendář pro jeden měsíc, bere dva (2) argumenty, rok a měsíc.
  • calendar.isleap(): Zkontroluje, zda je rok přestupný, bere jeden (1) argument, a to rok, který chcete zkontrolovat.
  • calendar.leapdays(): Vrátí počet přestupných dní nahromaděných v průběhu let, bere dva (2) argumenty, představující roky, mezi nimiž chcete období zkontrolovat.
  • itermonthdays(): Používá třídu Calendar(), iteruje přes všechny dny v měsíci, bere dva argumenty, rok a měsíc.
  • itermonthdates(): Používá třídu Calendar(), iteruje přes všechna data v měsíci, bere dva argumenty, rok a měsíc.
  • monthdayscalendar(): Používá třídu Calendar(), iteruje přes všechny týdny v měsíci, bere dva argumenty, rok a měsíc. Ukládá data do vnořeného seznamu.
  • monthdays2calendar(): Stejné jako předchozí funkce, ale spolu ukládá týdny a dny do dvourozměrného seznamu.

Nejprve se vydejte ke zlatému X a zkontrolujte kalendář, vytvořte proměnnou pojmenovanou cal a uložte do ní výsledek volání calendar.calendar() s argumentem roku 2026, takto: cal = calendar.calendar(2026). Použijte funkci display() k zobrazení proměnné cal, kterou jste právě nastavili.

Poté, co zkontrolujete a zobrazíte kalendář, jděte ke světlejšímu X a zkontrolujte tabulku na stole. Použijte funkci read() k přečtení zápisu s plánovaným měsícem dodávky. Vytvořte dvě proměnné, jednu pojmenujte year a druhou month, a naplňte je informacemi, které jste přečetli.

Vytvořte proměnnou pojmenovanou calendar_month a uložte do ní výsledek volání funkce calendar.month() s argumenty year a month. Použijte funkci display() k zobrazení kalendářního měsíce, který bude použit pro nastavení rozpisu distribuce.

Přejděte k tmavému X přes zelený koberec, zde si zapíšeme některé datové body, abychom zajistili, že rozpisy nebudou posunuty. Vytvořte dvě proměnné, jednu pojmenujte leap_year a druhou leap_days. Do proměnné leap_year uložte výsledek funkce calendar.isleap() s argumentem 2026. To vám umožní ověřit, zda je aktuální projektový rok přestupný. Do proměnné leap_days uložte výsledek funkce calendar.leapdays() s argumenty 2020 a 2027. Tím ověříte počet přestupných dní, ke kterým došlo během celého trvání projektu. Použijte předdefinovanou funkci write() a předáte jí proměnné leap_year a leap_days, aby se data zapsala.

Přejděte k tmavému X přes červený koberec a postavte se ke stolu, zde si sestavíme rozvrh měsíce. Vytvořte proměnnou pojmenovanou date a uložte do ní výsledek volání calendar.Calendar(), čímž vytvoříte objekt třídy, na který se budeme později odkazovat. Dále vytvořte proměnnou pojmenovanou day_roster a nastavte ji na prázdný řetězec, což nám umožní uložit seznam dnů do řetězce. Takto: day_roster = "".

V editoru je předem napsán cyklus for, který iteruje přes kalendář a vypisuje data. Použijte funkci itermonthdays() a jako argumenty předejte proměnné year a month, které jste vytvořili dříve. Doplňte chybějící části podle potřeby, aby byl seznam kompletní.

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

Jakmile máte cyklus nastaven, vytvořte jeho kopii, ale nahraďte funkci itermonthdays() funkcí itermonthdates() a opět předejte proměnné year a month jako argumenty. Pro proměnnou entry zaznamenejte data takto: entry = "%s \n" % (day). Tím získáme úplná data trvání projektu. Použijte předdefinovanou funkci display() s proměnnou day_roster, aby byl zobrazen kompletní seznam dní projektu v kalendáři.

Přejděte k tmavému X přes modrý koberec a postavte se k zápisu, zde budeme nastavovat pracovní týdny projektu, katalogizované v seznamech. Vytvořte proměnnou pojmenovanou weeks a uložte do ní výsledek volání calendar.Calendar(), čímž vytvoříte objekt třídy, na který se můžete odkazovat pomocí funkcí. Změňte hodnotu proměnné month na 7, abyste posunuli harmonogram, na kterém pracujeme, takto: month = 7.

Vytvořte proměnnou pojmenovanou week_roster a nastavte ji na prázdný řetězec, což nám umožní uložit seznam týdnů do řetězce. Takto: week_roster = "". V editoru je předem napsán cyklus for, který iteruje přes kalendář a vypisuje dny týdne. Použijte funkci monthdayscalendar() a předejte jí proměnné year a month jako argumenty. Doplňte chybějící části podle potřeby, aby byl seznam kompletní.

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

Jakmile máte cyklus nastaven, vytvořte jeho kopii, ale nahraďte funkci monthdayscalendar() funkcí monthdays2calendar() a opět předejte proměnné year a month jako argumenty. Tím získáme kompletní seznam trvání projektu. Použijte předdefinovanou funkci display() s proměnnou week_roster, aby byl zobrazen kompletní seznam pracovních dnů projektu v kalendáři a úroveň byla dokončena.

Kniha Kódu