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: