Ajan käsittely ja satunnaisuus
Tällä oppitunnilla perehdymme Pythonin tapohin käsitellä aikaa. Aikaa voidaan käsitellä esimerkiksi datetime
-moduulin avulla, mihin perehdymmekin tällä tunnilla.
Ajan käsittelyn lisäksi tutustumme siihen, miten voimme luoda ohjelmia, jotka hyödyntävät satunnaisuutta logiikassaan.
Sisällysluettelo
Suositeltavaa luettavaa
- Ohjelmoinnin perusteet (mooc.fi): Aikojen käsittely
- Ohjelmoinnin perusteet (mooc.fi): Satunnaisuus
- Python documentation (docs.python.org): datetime - Basic date and time types
- Python documentation (docs.python.org): random - Generate pseudo-random numbers
- Python 3 – ohjelmointiopas: sivut 79-82
Aikamoduulin käyttäminen omassa koodissa
Seuraava video käsittelee Pythonin datetime
-modullin käyttöönottoa omassa koodissamme. Opit lisäämään tai vähentämään päiviä tietystä päivämäärästä, sekä muotoilemaan ajankohdat eri maissa käytettyjen päivämäärämuotoilujen mukaiseksi.
from datetime import datetime, timedelta
nykyhetki = datetime.now()
print('Nykyinen kellonaika on ' + str(nykyhetki))
viikko = timedelta(days=7)
print('Viikon päästä on ' + str(nykyhetki + viikko))
Koodiesimerkit käsitellään käytännön tasolla seuraavassa videossa:
Tuntitehtävä: ikälaskuri
Kirjoita ohjelma, joka pyytää käyttäjältä päivämäärän muodossa pp.kk.vvvv
, ja kertoo kuinka pitkä aika kuluvan päivän ja annetun päivän välillä on.
Tuntitehtävä: pyhäpäivälaskuri
Kirjoitetaan ohjelma, joka selvittää juhannuksen sekä muut ajankohdaltaan vaihtelevat juhlapyhät annettuna vuonna. Toteutetaan ohjelma siten, että muodostettu aineisto voidaan tuoda Google Calendar -sovellukseen import-toiminnolla.
Virheet ohjelmissa (errors, runtime errors, exceptions…)
Aikaisemmassa videossa huomasimme, miten virheellisessä muodossa syötetty päivämäärä kaatoi koko ohjelman, kun sitä yritettiin muuttaa datetime
-olioksi strptime
-metodilla. Virheelliset syötteet ja erilaiset yllättävät virhetilanteet aiheuttavat ohjelmissa tyypillisesti poikkeuksia, joihin voidaan varautua etukäteen. Seuraavat videot käsittelevät poikkeustenhallintaa, jolla voimme jo etukäteen varautua virhetilanteisiin kirjoittamalla virheitä käsitteleviä koodilohkoja.
Seuraava video esittelee erilaisiin virheisiin liittyvät termit ja käsitteet sekä poikkeusten käsittelyyn liittyvän syntaksin:
Poikkeustenkäsittelyä esitellään käytännön tasolla seuraavalla videolla:
Videoiden lisenssi
Tässä oppimateriaalissa hyödynnetyt Microsoftin Python for Beginners -videosarjan videot on lisensoitu Creative Commons Attribution-Noncommercial-No Derivative Works 4.0 International -lisenssillä.