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
Slide 1 of 26
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26

About This Presentation

Kalvot 6 PYTHON PROGRAMMING DANIEL PHILLIPE GONÇALVES MENEZES


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ä
Tags