Kalvot 6 PYTHON PROGRAMMING DANIEL PHILLIPE GONÇALVES MENEZES SERGIPE ARACAJU BRAZIL 27 ANOS UNIVERSITY OF HELSINKI .pdf
danielphmenezes
0 views
26 slides
Sep 28, 2025
Slide 1 of 26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
About This Presentation
Kalvot 6 PYTHON PROGRAMMING DANIEL PHILLIPE GONÇALVES MENEZES
Size: 340.11 KB
Language: fi
Added: Sep 28, 2025
Slides: 26 pages
Slide Content
Viikko 6
OHjelmoinnin PErusteet
7.10.2024
Viikolla 5
●eri tyyppiset alkiot listoissa
●matriisit
●viittaukset
●listat parametreina
●sanakirja (eli dictionary)
●tuplet
Viime viikolta:
●Mitä eroa kopiolla ja viittauksen kopioinnilla?
●Viittaukset funktioissa
●Hankala muistaa komentoja → olisiko joku taulukko näistä (voisi olla hyvä idea)
●Milloin pitää käyttää tuplea tai sanakirjaa?
●Viimeiset tehtävät (taas) monelle hankalia
Tiedostojen lukeminen
Tyypillinen toimenpide ohjelmissa
Tekstitiedostojen käsittely on helppoa Pythonissa
Muut tiedostomuodot voivat olla haastavampia
Esimerkki
Luetaan tiedoston sisältö
with-lohko huolehtii
automaattisesti tiedoston
sulkemisesta
Tiedostojen käsittely rivi kerrallaan
Metodi read lukee tiedoston
sisällön kokonaan
Usein on kätevämpää käsitellä
tiedostoa rivi kerrallaan
Tämä käy kätevästi for-lauseella
CSV-tiedostot
Comma Separated Values
Riveillä on useita arvoja, jotka
on eroteltu toisistaan jollain
välimerkillä
Merkkijonon pilkkominen osiksi
Merkkijonon voi pilkkoa listaksi
split-metodilla
Metodille annetaan parametriksi
välimerkki
Saman tiedoston lukeminen useasti
Huomaa, että tiedoston voi
läpikäydä with-lohkon sisällä
vain kerran
Eroon turhista merkeistä
Tiedoston lukeminen palauttaa
myös rivinvaihdot
Näistä pääsee eroon kätevästi
strip-metodilla
Tiedoston luominen
Uuden tiedoston voi luoda
antamalla open-funktiolle
tiedoston nimen lisäksi
avaustilaksi "w"
Jos tiedosto on jo olemassa,
sen sisältö ylikirjoitetaan!
Tiedostoon kirjoitus
Tiedostoon voidaan kirjoittaa rivejä
write-metodilla
Huomaa, että rivinvaihdot pitää lisätä
itse
Tiedon lisääminen tiedostoon
Tiedoston perään voi lisätä uusia
rivejä tilassa "a" (sanasta append)
CSV-tiedoston kirjoittaminen
Tiedoston tyhjentäminen ja poisto
Syötteiden tarkastaminen
Tyypillisiä virhetilanteita ovat esimerkiksi
●puuttuvat tai tyhjät arvot: esimerkiksi pituus nolla tai tyhjä merkkijono nimenä
●negatiiviset arvot: esimerkiksi -15 henkilön painona
●puuttuva tai väärän niminen tiedosto
●liian pienet tai liian suuret arvot
●väärä indeksi (esim. viittaaminen indeksiin 3 merkkijonossa "moi")
●väärän tyyppiset arvot, esimerkiksi merkkijono luvun sijasta
Syötteiden tarkastaminen (2)
Usein virheisiin voidaan varautua
ohjelmallisesti
Syötteet voidaan validoida
ehtolauseella
Poikkeukset
Joitain virheitä ei voida tarkastaa ehtolauseilla
Ohjelman suorituksen aikana tapahtuvia virheitä kutsutaan poikkeuksiksi
Poikkeuksiin varautuminen
Poikkeuksiin voidaan varautua
try-except-rakenteella
Tyypillisiä virheitä
ValueError
Tämä poikkeus voi johtua siitä, että funktion parametri on vääränlainen. Esimerkiksi kutsu float("1,23") tuottaa tämän poikkeuksen, koska Pythonissa desimaalierottimen tulee olla piste
eikä pilkku.
TypeError
Tämä poikkeus tapahtuu, kun arvo on väärän tyyppinen. Esimerkiksi kutsu len(10) saa aikaan tämän poikkeuksen, koska funktio len haluaa parametrin, jolle voidaan laskea pituus (kuten
merkkijonon tai listan).
IndexError
Tämä poikkeus tapahtuu, jos yritetään viitata indeksiin, jota ei ole olemassa. Esimerkiksi "abc"[5] aiheuttaa tämän poikkeuksen, koska merkkijonossa ei ole indeksiä 5.
ZeroDivisionError
Tämä poikkeus tapahtuu, jos yritetään jakaa nollalla. Yksi esimerkki on tilanne, jossa yritetään laskea listan arvojen keskiarvo kaavalla sum(lista) / len(lista), mutta listan pituus on nolla.
Tiedostojen poikkeukset
Tiedostojen käsittelyssä voi tulla vastaan esimerkiksi poikkeukset FileNotFoundError (koetetaan lukea tiedostoa, jota ei ole olemassa), io.UnsupportedOperation (tiedosto on avattu
tilassa, joka ei salli operaatiota) tai PermissionError (ohjelmalla ei ole oikeutta käsitellä tiedostoa).
Useampi except-lohko
Jos try-lohkossa oleva koodi voi
tuottaa useita eri virheitä, voidaan
except-lohkoja kirjoittaa useampia
Määrittelemätön virhe
Kaikki mahdolliset poikkeukset voi
ottaa kiinni jättämällä poikkeuksen
määrittelemättä except-lohkosta
Huomaa, että tämä ottaa kiinni myös
ohjemoijan tekemät virheet
Poikkeusten välittyminen
Funktiossa tapahtunut
poikkeus välitetään funktion
kutsujalle
Poikkeusten tuottaminen itse
Poikkeuksen voi luoda
avainsanalla raise
Tämä on hyvä tapa
esim. funktioiden
virheellisten
syötteiden käsittelyyn
Paikalliset muuttujat
Aliohjelmien muuttujat näkyvät
vain aliohjelmien sisällä
Avainsana global
Pääohjelman muuttujia voi
muuttaa aliohjelman sisällä
käyttämällä avainsanaa global
Yleensä tämä on huono idea,
sivuvaikutusten sijasta funktioiden
tulisi palauttaa jokin arvo
Ensi viikolla
Modulit
Satunnaisuus
Aikojen ja päivämäärien käsittely
Lisää datan käsittelyä
Omat modulit
Sekalaisia Pythonin ominaisuuksia
Muutama sana tentistä