Funktioilden avulla koodia voidaan selkeyttää ja uudelleenkäyttää.
#Funktion tehdään ohjelmakoodin alkuun ennen varsinaista pääohjelmaa
def funktionNimi():
print("tämä tulostetaan aliohjelmassa")
#Funktion kutsuminen pääohjelmasta
funktionNimi()
#Funktion palauttaa tietoa
return -käskyllä. Tällöin funtiokutsu korvautuu return-käskyn jälkeen olevalla tiedolla ja suoritus palautuu pääohjelmaan.
def tulo(a,b)
tulos = a*b
return tulos
...
if ( tulo(3,2) < 100):
...
print tulo(2,5)
#Funktiolle välitetään tietoa kutsun mukana
def summa(luku1, luku2):
summa = luku1 + luku2
return summa
#kutsu
if summa(3,6) > 5:
print("summa on yli 5")
# Funktion palauttaa tietoa
return -käskyllä.Tällöin funtiokutsu korvautuu return-käskyn jälkeen olevalla tiedolla ja suoritus palautuu pääohjelmaan.
def tulo(a,b)
tulos = a*b
return tulos
...
if ( tulo(3,2) < 100):
...
print (tulo(2,5))
Esimerkki: Henkilötunnuksen viimeinen tarkastusmerkki Linkki teoriaan
def Tarkastusmerkki(a):
merkit="0123456789ABCDEFHJKLMNPRSTUVWXY"
luku = int(a[:6]+a[7:])
jakojaannos = luku%31
return merkit[jakojaannos]
print("Viimeinen merkki on : ", Tarkastusmerkki("121212A123"))
#Pääohjelman luonti ohjelmaan !!!
def main():
....
#loppuun käynnistetään ohjelma main-funktiosta
if __name__ == "__main__":
main()
T6.1. Merkkejä riviin
Tee rivi()-funktio, joka tulostaa a kappaletta "#" - merkkejä komennolla print("#"*a, end=" ").
Pääohjelmassa kutsu ohjelmaa:
def rivi(a):
___
rivi(2)
rivi(4)
##
####
T6.2. Parillinen ja True/False palautusarvo
Muokkaa koodia niin, että se kyselee kunnes käyttäjä antaa parittoman luvun
def parillinen(luku):
if luku%2 == 0:
return True
toisto = True
while toisto != False:
a = int(input("Anna luku >"))
toisto = parillinen(a)
T6.3. Merkkilaskuri
Testaa koodi. Muokkaa koodia niin, että se ilmoittaa numeroiden lukumäärän merkkijonossa
def laske_vokaalit(merkkijono):
vokaalit = "aeiouyäöAEIOUYÄÖ" # vokaalit
lkm = 0
for merkki in merkkijono:
if vokaalit.count(merkki) == 1:
lkm = lkm + 1
return lkm
# Pääohjelma:
merkkijono = input("Syötä merkkijono: ")
print("Vokaaleja on:", laske_vokaalit(merkkijono))
T6.4Potenssi
Tee funktio joka saa parametreinaan kaksi lukua (a,b) ja palauttaa luvun a potenssiin b. Potenssin operaattori on **, eli a**b. Palauta return -lausekkeella tulos. Voit käyttää apuna alkukoodia: Korvaa ___ sopivalla koodilla
def potenssi(a,b): #Lisää funktion nimi
tulos=____ # Lisää laskentakaava tulokselle (kts tehtävä)
return tulos
print(potenssi(2,4)) #Lisää funktion nimi ja testaa (tulostaa 16)
T6.5. Kertoma (rekursio)
Tee funtion kertoma(luku), joka saa parametrikseen yhden kokonaisluvun. Funktio palauttaa return -lauseella luvun kertoman. Kertoman arvo saadaan kertomalla kaikki kokonaisluvut 1*2*3...*luku.
Tee tulos- muuttuja, jonka alkuarvo on 1. Toistorakenteessa kerro tulos -muuttujaa toiston luvulla.