print, range ja len.
Entä jos haluaisimme tehdä itse vastaavia funktioita?
def avulla.
Esimerkiksi seuraavassa ohjelmassa on funktio testi,
joka tulostaa tekstin "Moikka!".
Ohjelma kutsuu funktiota kolme kertaa.
def testi():
print("Moikka!")
testi()
testi()
testi()
Ohjelman tulostus on seuraava:
Moikka! Moikka! Moikka!
portaat
on parametri n, joka ilmaisee,
kuinka korkean portaikon haluamme tulostaa.
Kutsumme funktiota kahdesti parametreilla 3 ja 5.
def portaat(n):
for i in range(1,n+1):
print("#"*i)
portaat(3)
portaat(5)
Ohjelma antaa seuraavan tuloksen:
# ## ### # ## ### #### #####
return,
joka poistuu funktiosta ja palauttaa arvon.
Esimerkiksi seuraavassa ohjelmassa funktio summa
laskee lukujen a...b summan:
def summa(a,b):
s = 0
for x in range(a,b+1):
s += x
return s
print(summa(1,5))
print(summa(8,9))
Ohjelma laskee summat 1+2+3+4+5 = 15 ja 8+9 = 17:
15 17
a ja b suurimman yhteisen
tekijän Eukleideen algoritmilla:
def syt(a,b):
if b == 0:
return a
else:
return syt(b,a%b)
print(syt(4,6))
print(syt(9,14))
print(syt(24,60))
Ohjelman tulostus on seuraava:
2 1 12
rivi,
joka tulostaa rivin, jossa on peräkkäin n tähteä.
Liitä komento osaksi seuraavaa ohjelmaa,
joka myös testaa komentoasi:
def rivi(n):
# toteuta komento tähän
rivi(5)
rivi(10)
rivi(8)
Ohjelman tulostuksen tulee olla seuraava:
***** ********** ********
Kirjoita ohjelma tähän:
laatikko,
joka tulostaa sille annetun tekstin laatikossa,
jonka reunat ovat tähtiä.
Liitä komento osaksi seuraavaa ohjelmaa,
joka myös testaa komentoasi:
def laatikko(teksti):
# toteuta komento tähän
laatikko("apina")
laatikko("banaani")
laatikko("cembalo")
Ohjelman tulostuksen tulee olla seuraava:
********* * apina * ********* *********** * banaani * *********** *********** * cembalo * ***********
Kirjoita ohjelma tähän:
kertoma,
joka laskee luvun n kertoman.
Liitä funktio osaksi seuraavaa ohjelmaa,
joka myös testaa funktiotasi:
def kertoma(n):
# kirjoita funktio tähän
print(kertoma(3))
print(kertoma(5))
print(kertoma(9))
Ohjelman tulostuksen tulee olla seuraava:
6 120 362880
Kirjoita ohjelma tähän:
summa,
joka laskee sille annetun listan lukujen summan.
Liitä funktio osaksi seuraavaa ohjelmaa,
joka myös testaa funktiotasi:
def summa(lista):
# kirjoita funktio tähän
print(summa([1,2,3]))
print(summa([5,1,7,2,5]))
print(summa([4]))
Ohjelman tulostuksen tulee olla seuraava:
6 20 4
Kirjoita ohjelma tähän:
peilaus,
joka kääntää sille annetun tekstin väärinpäin.
Liitä funktio osaksi seuraavaa ohjelmaa,
joka myös testaa funktiotasi:
def peilaus(teksti):
# kirjoita funktio tähän
print(peilaus("apina"))
print(peilaus("banaani"))
print(peilaus("cembalo"))
Ohjelman tulostuksen tulee olla seuraava:
anipa inaanab olabmec
Kirjoita ohjelma tähän:
tekijat,
joka palauttaa listan, jossa on luvun n
alkutekijät pienimmästä suurimpaan.
Liitä funktio osaksi seuraavaa ohjelmaa,
joka myös testaa funktiotasi:
def tekijat(n):
# kirjoita funktio tähän
print(tekijat(6))
print(tekijat(7))
print(tekijat(8))
print(tekijat(980))
print(tekijat(12345))
Ohjelman tulostuksen tulee olla seuraava:
[2, 3] [7] [2, 2, 2] [2, 2, 5, 7, 7] [3, 5, 823]
Kirjoita ohjelma tähän: