25. maaliskuuta 2026
Palataan Python-ohjelmoinnin pariin: moduulit ja funktiot
Johdantotehtävä
Kopioi alla oleva koodi Trinket.io:hon ja tutustu sekä ohjelman toimintaan että koodiin.Joutunet asettamaan sisennykset kohdalleen, mikä on erittäin tarkoituksenmukaista harjoittelua koodin rakenteen hahmottamiseksi!
Vastaa mielessäsi seuraaviin kysymyksiin:
- Mitä ohjelma tekee?
- Mitä koodissa tarkoittaa
- while True:
- break
- try - except -rakenne
- Jollet ymmärrä, saat kysyä tekoälyltä selitystä.
- Ja vaikka ymmärtäisitkin, voit kysyä tekoälyltä syvennystä asioihin.
print "Lasketaan kahden luvun tulo."print "Laskeminen jatkuu niin kauan kuin kumpikaan luvuista ei ole nolla.\n"while True: # Kysy luku1 kunnes syöte on kunnollinen while True: try: luku1 = int(raw_input("Anna ensimmäinen kokonaisluku: ")) break except: print "Syöte ei kelpaa. Anna kokonaisluku!" # Kysy luku2 kunnes syöte on kunnollinen while True: try: luku2 = int(raw_input("Anna toinen kokonaisluku: ")) break except: print "Syöte ei kelpaa. Anna kokonaisluku!" # Tarkistus: lopetetaanko? if luku1 == 0 or luku2 == 0: print "Annoit nollan, joten hypätään silmukasta pois." break print "Lukujen tulo on", luku1 * luku2 print ""print "Ohjelman suoritus loppui."
Malli moduulista ja funktiosta
Tutustu seuraavaan esimerkkiin:

main.py:
import taksatprint "Tässä ohjelmassa lasketaan taksimatkan hinta."print "Hinta muodostuu perusmaksusta sekä kilometrikustannuksesta."matkanPituus = float(input("Anna matkan pituus kilometreinä."))print "Matkan hinta on", taksat.laskeMatkanHinta(matkanPituus), "euroa."taksat.py:
def laskeMatkanHinta(matkanPituus):return 1.39 * matkanPituus + 6.0Harjoitustehtävä: tee lisää funktioita omiin moduuleihinsa
Moduulien ja funktioiden avulla laajempaa ohjelmistokokonaisuutta koetetaan jäsennellä ihmisellä hahmoteltavaksi. Loppujen lopuksihan koneen suorittama ykkösten ja nollien jono on "yhtä pötköä" haarautuen kuitenkin suorituksessa eri tekijöiden vaikutusten mukaisesti.Rupea täydentämään seuraavaa ohjelmaa. Aikaa 2 * 75 min.

main.py:
from kuutionTilavuus import *from kuutionPintaAla import *print "Tässä ohjelmassa lasketaan kappaleiden pinta-aloja ja tilavuuksia"print "Lasketaan niin kauan kunnes käyttäjä syöttää nollan."print ""while True:print "suorakulmaisen särmiön tilavuuden laskeminen: 1"print "suorakulmaisen särmiön pinta-alan laskeminen: 2"print "kuution tilavuuden laskeminen: 3"print "kuution pinta-alan laskeminen: 4"print "Tähän on tulossa lisää vaihtoehtoja..."print "Lopetus: 0"# Kysy, kunnes syöte on kunnollinenwhile True:try:valinta = int(raw_input("Valitse toiminto "))breakexcept:print "Syöte ei kelpaa. Anna kokonaisluku!"# Tarkistus: lopetetaanko?if valinta == 0:print "Annoit nollan, joten hypätään silmukasta pois."breakelif valinta == 1:print "ToDo"elif valinta == 2:print "ToDo"elif valinta == 3:tilavuus = kuutionTilavuus()print "Kuution tilavuus on ", tilavuuselif valinta == 4:kuutionPintaAla()else:print("Valintaa ei vastaa mitään toimintoa. Valitse annetuista vaihtoehdoista.")print "Ohjelman suoritus loppui.kuutionTilavuus.py:
def kuutionTilavuus():# Kysy sivunPituus kunnes syöte on kunnollinenwhile True:try:sivunPituus = float(raw_input("Anna sivun pituus: "))return sivunPituus * sivunPituus * sivunPituusexcept:print "Syöte ei kelpaa. Anna jokin luku! Desimaaliluvussa piste on desimaalierottimena."kuution pintaAla.py:
def kuutionPintaAla():print "Todo"