Osa 7

Lisää Pythonista

Tähän lukuun on koottu vielä joukko erinäisiä hyödyllisiä Pythoniin liittyviä ominaisuuksia.

Yhden rivin ehto

Seuraavat koodit toimivat samalla tavalla:

if x%2 == 0:
    print("parillinen")
else:
    print("pariton")
print("parillinen" if x%2 == 0 else "pariton")

Jälkimmäisessä koodissa on yhden rivin ehto muotoa a if [ehto] else b. Tällaisen lausekkeen arvo on a, jos ehto pätee, ja muuten b.

Sama rakenne on joskus hyödyllinen kun tehdään ehdollinen sijoituslause. Esimerkiksi jos haluaisimme joko kasvattaa muuttujaa y tai nollata sen riippuen muuttujan x arvon parillisuudesta, sen sijaan että kirjoittaisimme

if x%2 == 0:
    y += 1
else:
    y = 0

sama voitaisiin tehdä yhden rivin ehdolla seuraavasti

y = y + 1 if x%2 == 0 else 0

Tyhjä komento

Komento pass ei tee mitään. Voimme tehdä sen avulla esimerkiksi funktion testi, joka ei tee mitään:

def testi():
    pass

Huomaa, että lohko ei voi olla tyhjä eli seuraava koodi ei toimisi:

def testi():

Silmukan else-osa

Kiinnostava Pythonin ominaisuus on, että ehtolauseen lisäksi myös silmukassa voi olla else-osa. Tämä osa suoritetaan, jos silmukka pääsee loppuun.

Esimerkiksi seuraava koodi etsii listalta parillista lukua. Jos sellainen löytyy, koodi tulostaa luvun ja silmukka päättyy. Kuitenkin jos lukua ei löytynyt, tästä tulee ilmoitus lopuksi.

lista = [3,5,2,8,1]
for x in lista:
    if x%2 == 0:
        print("löytyi parillinen", x)
        break
else:
    print("ei löytynyt parillista")

Perinteinen tapa tehdä tällainen silmukka olisi käyttää apumuuttujaa, joka muistaa, löytyikö haluttua asiaa silmukan aikana:

lista = [3,5,2,8,1]
loytyi = False
for x in lista:
    if x%2 == 0:
        print("löytyi parillinen", x)
        loytyi = True
        break
if not loytyi:
    print("ei löytynyt parillista")

Kuitenkin silmukan else-osan avulla vältymme muuttujan tekemiseltä.

Funktion oletusparametri

Funktion parametrilla voi olla oletusarvo, joka tulee käyttöön silloin, jos parametria ei anneta. Näin on esimerkiksi seuraavassa funktiossa:

def tervehdi(nimi="Emilia"):
    print("Moikka,", nimi)

tervehdi()
tervehdi("Erkki")
tervehdi("Matti")
Esimerkkitulostus

Moikka, Emilia Moikka, Erkki Moikka, Matti

Muuttuva määrä parametreja

Funktiolla voi olla myös muuttuva määrä parametreja, mikä merkitään laittamalla tähti parametrin eteen. Tällöin kaikki loput parametrit kasautuvat listaksi tähän parametriin.

Esimerkiksi seuraava funktio kertoo parametrien määrän ja summan:

def testi(*lista):
    print("Annoit", len(lista), "parametria")
    print("Niiden summa on", sum(lista))

testi(1, 2, 3, 4, 5)
Esimerkkitulostus

Annoit 5 parametria Niiden summa on 15

Loading

Vastaa kurssin lopuksi loppukyselyyn. Kyselyn tuloksia käytetään kurssimateriaalin kehittämiseen.

:
Loading...
:
Loading...

Kirjaudu sisään nähdäksesi tehtävän.