Esitehtävät¶
Näissä harjoituksissa asennetaan tarpeellisia työkaluja ja tutustutaan Pythonin peruskäyttöön. Tämä tehdään siksi, ettei näitä perusjuttuja tarvitsisi enää siinä vaiheessa ihmetellä, kun ratkotaan kurssin varsinaisia tehtäviä.
Osaamistavoitteet: Näiden harjoitusten jälkeen tiedät miten Pythonia käytetään. Tähän kuuluu
Python-tulkin
käyttö sekä kooditiedostojen
suorittaminen
. Windowsin Muistiota paremmista koodaustyökaluista ainakin yksi tulee myös tutuksi.Asennukset¶
Seuraavia ohjeita kannattaa noudattaa asentaessa ohjelmistoja kotikoneelle. Jos käytät tietokoneluokan tietokonetta harjoitusten tekemiseen, voit harjoituksissa siis ohittaa suurimman osan tästä osiosta - katso kuitenkin Notepad++-ohjelman asetukset hieman alempaa! Palaa näihin asennusohjeisiin kuitenkin kotona, jotta kurssin tehtävien suorittaminen onnistuisi kotoakin käsin!
Asennetaan tietenkin itse Python, jota ilman Pythonia käyttävää ohjelmointikurssia on hieman hankala suorittaa. Lisäksi asennetaan käytännössä pakollinen parempi tekstieditori sekä joitain elämää helpottavia ohjelmia. Kussakin kohdassa tulee seurata omalle käyttöjärjestelmälläsi suunnattuja ohjeita.
Python¶
Ensinnäkin on syytä huomata, että kurssilla käytetään Pythonin kolmosversiota – ei siis vanhaa kakkosversiota! Nykyinen versio on Python 3.7. Osa kurssin ohjeista saattaa vielä viitata vanhempiin versioihin, jotka ovat olleet ohjeiden laatimisen aikaan uusimpia versioita. Älä välitä tästä, kuvittele vain 3.7 siihen tilalle.
Pääasiassa ladattavat paketit löytyvät Python Software Foundationin sivuilta. Tarkemmat ohjeet alla.
Windows¶
Asennus Windowsissa tarvitsee pääkäyttäjän oikeudet. Periaatteessa asennus pitäisi olla mahdollista vain yhdelle käyttäjälle, mutta aiempina vuosina useilla on ollut ongelmia saada kaikki toimimaan oikein jos asennusta ei ole tehty kaikille käyttäjille.
- Aloita nappaamalla asennuspaketti ainoasta oikeasta virallisesta lähteestä ja tallentamalla se johonkin sopivaan paikkaan (selaimen oletuslatauskansio on aivan hyvä).
- Kaksoisklikkaa tai muuten käynnistä lataamasi
python-3.7.4-amd64.exe
-tiedosto. Windows saattaa valittaa, että tiedosto ei ole luotettavasta lähteestä, jolloin kerrot sille, että asenna nyt vain. - Asennusohjelman käynnistyttyä kohdassa, jossa asennusohjelma kysyy asennustavasta, etsi alareunasta valinta ”Add Python 3.7 to PATH”, jota ei ole oletuksena valittu, ja valitse se. Windows 10:llä on lisäksi syytä valita custom install ja valita itse mihin kansioon Python asennetaan - jostain syystä oletuskansio ei tunnu aina toimivan.
Tämän jälkeen pitäisi olla valmista.
Mac OS X¶
OS X toimittaa käyttöjärjestelmän mukana Pythonin kakkosversion, 2.7 jotain. Koska käytämme kurssilla Python 3:a, se on asennettava erikseen. Uusin versio intel-suorittimille vaatii käyttöjärjestelmän 10.6-version, mikä ei taida tuottaa ongelmia vuonna 2017.
- Lataa asennusohjelma omalle OS X versiollesi ja aja se koneellasi.
- Klikkaile asennuksen läpi myöntäen ehdot, mitään muita asetuksia ei tarvitse valita.
Siinäpä se sitten olikin. Nyt voit avata
Python-tulkin
komentoriviltä
(Terminal) komennolla python3
– varo, ettet kirjoita pelkästään python
ilman kolmosta, sillä tämä avaa vanhan kakkosversion tulkin, jossa jotkut ominaisuudet toimivat eri tavalla kuin mitä kurssilla tulet oppimaan.Linux¶
Useimmissa Linux-jakeluissa voit asentaa Pythonin suoraan pakettienhallinnasta. On tosin hyvin mahdollista, että Python 3 tulee muutenkin käyttöjärjestelmän asennuksen mukana – yleensä nimellä
python3
(pelkkä python
käynnistää vanhan kakkosversion). Todennäköisesti tunnet itse oman Linuxisi käytännöt paremmin kuin me, joten emme pyri antamaan ohjeita jokaiselle mahdolliselle jakelulle.Jos pakettienhallinta ei tarjoa Pythonista kolmosversiota, joudut asentamaan Pythonin lähdekoodista kääntämällä. Tällöin voit ladata lähdekoodin täältä. Tämän jälkeen prosessi etenee seuraavilla komennoilla:
- cd /hakemisto/johon/latasit/tiedoston
- tar xvzf Python-3.7.0.tgz
- cd Python-3.7.4
- ./configure
- make
- make install
Mikäli kohtaat ilmoituksia puuttuvista kirjastoista (esimerkiksi readline-kirjaston kehittäjäpaketti), asenna ne seuraten jälleen Linux-jakelusi käytäntöjä.
Tekstieditori¶
Ohjelmoinnista huomattava osa on tietysti
koodin
kirjoittamista ja muokkaamista, ja näin ollen hyvä tekstieditori auttaa ohjelmoinnissa todella paljon. Tarvitsemme siis hyvän tekstieditorin, joka osaa vähintään:- näyttää rivinumerot,
- pitää auki useita tiedostoja kerralla,
- värjätä tekstiä koodin syntaksinmukaisesti sekä
- korvata sarkainmerkit halutulla määrällä välilyöntejä.
Useimmat hyvät tekstieditorit tekevät enemmänkin. Tekstieditorin sijaan voit halutessasi asentaa myös kokonaisen kehitysympäristön, jolloin voit ohittaa tämän kohdan ja siirtyä seuraavaan. Kehitysympäristöt tarjoavat vielä enemmän ominaisuuksia, mutta niiden käyttö vaatii hieman enemmän opettelua, ja ne ovat tyypillisesti ohjelmina paljon raskaampia esimerkiksi muistin käytön suhteen.
Windows¶
Windowsille suosittelemme koodin kirjoittamiseen Notepad++-ohjelmaa. Se on avointa lähdekoodia, täysin ilmainen ja täyttää kaikki hyvän tekstieditorin vaatimukset. Se löytyy myös PC-luokissa käytettävältä virtuaalikoneelta, joten harjoituksissa käyville se tulee taatusti tutuksi.
Windowsin mukana tulee vain kämyinen Muistio, jota ei todellakaan ole tarkoitettu koodin kirjoittamiseen!
- Lataa asennuspaketti tästä linkistä.
- Kaksoisklikkaa lataamaasi .exe-tiedostoa.
- Tarvittaessa vakuuta Windowsille, että kyllä haluat asentaa tämän ohjelman.
- Valitse kieleksi englanti.
- Seuraa ohjeita. Oletusasetukset ovat ihan hyvät.
Notepad++ Asetukset¶
Kun ohjelma on asentunut, kannattaa tehdä pari muutosta sen asetuksiin. Nämä muutokset kannattaa tehdä myös tietokoneluokissa!
- Valitse valikosta Settings -> Preferences…
- Etsi ikkunasta Language -välilehti ja laita rasti kohtaan
Replace by space
, ellei se ole jo raksittu (kuva alempana). - Etsi ikkunasta New Document -välilehti ja valitse Encoding-asetuksista
UTF-8
(tärkeää: ei UTF-8 with BOM) sekä laita rasti sen alla olevaan kohtaan. Valitse lisäksi Format-asetuksistaWindows
. Jos nämä asetukset olivat jo valmiiksi asetettuina, jätä koskematta niihin.
Voit muutella muita asetuksia omien tarpeidesi mukaan. Nämä kaksi muutosta vähentävät merkittävästi mystisten ongelmien määrää tulevaisuudessa – erityisesti, jos siirtelet tiedostoja eri koneiden välillä.
Mac OS X¶
Käyttöjärjestelmän mukana tuleva tekstieditori TextEdit ei täytä edellä mainittuja hyvän editorin ominaisuuksia. Graafisia tekstieditoreja on monia hyviä, esimerkiksi ilmainen avoimen lähdekoodin Atom. Asennettuasi Atomin voit helposti avata tiedostoja
komentokehotteesta
komennolla atom esimerkki.py
.Linux¶
Linuxin graafisten käyttöympäristöjen mukana tulee useimmiten joku käypä tekstieditori, esimerkiksi Gedit (Gnomessa) tai Kate (KDE:ssä). Graafista ympäristöjä kaihtavat koodarit käyttävät yleensä Emacsia tai Vimiä. Niiden käyttö vaatii kuitenkin hieman opettelua. Pieniin editointeihin
komentorivillä
voi käyttää myös Nanoa, mutta sillä ei mitään suurempaa kannata tehdä.Komentorivityökalut¶
Sekä Linuxissa että Mac OS X:ssä on oletuksena varsin hyvät
komentorivityökalut
myös ohjelmointikäyttöön. Windowsin komentorivi sen sijaan on parhaimmillaankin lähinnä välttävä, mutta sen uudemmat versiot ovat riittäviä tälle kurssille. Komentorivityökaluista käytetään useita nimityksiä: komentorivi, komentokehote, terminaali, konsoli... Työkalujen roolit ja käyttö¶
Yllä asennetuilla työkaluilla on kullakin oma roolinsa ohjelmoinnissa, tiivistetysti:
- Python: suorittaa koodia (eli muuttaa sen konekieliseksi prosessoria varten) joka on kirjoitettu interaktiiviseen Python-konsoliin tai kooditiedostoon
- Tekstieditori: käytetään kooditiedostojen kirjoittamiseen ja tallentamiseen
- Komentokehote: käytetään käyttöjärjestelmäkomentojen syöttämiseen sekä Pythonin käynnistämiseen
Kun istut alas koodaamaan, näistä käynnistetään yleensä heti tekstieditori ja komentokehote. Python kannattaa opetella heti alkuun käynnistämään komentokehotteesta, vaikka interaktiivisen tulkin voikin avata myös graafisen käyttöliittymän valikosta - kooditiedostojen suorittaminen ei nimittäin interaktiivisen tulkin sisältä onnistu halutulla tavalla.
Komentokehotteen käyttö¶
Komentokehote eli komentorivi eli terminaali eli konsoli on käyttöliittymä, jossa toiminnot tehdään antamalla käskyt tekstinä käyttäen käyttöjärjestelmän tuntemia komentoja. Aikanaan tietokoneissa ei muunlaisia käyttöliittymiä edes ollut, ja nykyäänkin palvelimia tyypillisesti hoidetaan puhtaasti terminaalin kautta. Linux-käyttäjille terminaali on yleensä tuttu työkalu, Windowsin puolella sitä sen sijaan vähän kaihdetaan ja koitetaan pitää piilossa.
Käynnistäminen¶
Windowsilla avaa ensin Suorita-ikkuna näppäinyhdistelmällä ⊞ Win+R. Sen jälkeen kirjoita tekstikenttään komento
cmd
ja paina enteriä. Windowsillakin komentoriviä
kannattaa käyttää Python-koodin ajamiseen, koska kaksoisklikkaamalla käynnistetyt kooditiedostot
eivät ensinnäkään pysy näkyvissä kovin pitkään, ja komentoriviargumenttien
antaminen niille myöhemmin kurssilla on vähän mutkikasta.Linuxilla
komentokehotteen
aukaiseminen onnistuu joko näppäinyhdistelmällä Ctrl+Alt+T tai Alt+F2 ja kirjoittamalla hakukenttään sanan Terminal. Macilla löydät vastaavan hakukentän oikeasta ylänurkasta ja voit kirjoittaa sinne hakusanan Terminal.Komentokehote ja hakemistot (Windows)¶
Komentokehotetta käyttäessä on aina syytä tietää mikä on senhetkinen aktiivinen hakemisto ("olet täällä"). Komentokehotteessa hakemistosta toiseen seilataan ihan samalla tavalla kuin käyttöjärjestelmän graafisessa tiedostoselaimessa, ja myös ihan yhtä lailla hakemiston sisällön saa komentokehotteessa näkyviin. Hiirellä klikkailun sijaan molemmat täytyy vain hoitaa tekstikomennoilla:
cd
: (change directory) komento jolla siirrytään toiseen hakemistoon jokorelatiivisestitaiabsoluuttisestidir
: (directory listing) komento joka näyttää aktiivisen hakemiston sisällön
Komentokehote aukeaa yleensä omaan kotihakemistoosi kun taas tyypillisesti kansiot joita Windowsin tiedostoselain tarjoaa pikavalintoina ovat kotihakemiston alla olevia kansioita. Usein näiden oikea polku eroaa siitä mitä tiedostoselain näyttää. Esim. tiedostoselain saattaa näyttää kansion nimeltä "Ladatut tiedostot" mutta sen oikea polkunimi on Downloads. Näet kaikki kotihakemiston alikansiot (ja tiedostot) dir-komennolla. Näihin alikansioihin voidaan siis siirtyä cd-komennolla. Oletetaan vaikka, että olet luonut Ohjelmointi-nimisen kansion "Omat tiedostot" kansion sisälle. Koska tuoreeltaan avattu komentokehote on kotihakemiston juuressa, tarvitaan kaksi cd-komentoa Ohjelmointi-kansioon pääsemiseksi:
C:\Users\aasi>cd Documents C:\Users\aasi\Documents>cd Ohjelmointi C:\Users\aasi\Documents\Ohjelmointi>
tai vaihtoehtoisesti voidaan kirjoittaa haluttu polku yhteen cd-komentoon:
C:\Users\aasi>cd Documents\Ohjelmointi C:\Users\aasi\Documents\Ohjelmointi>
Toinen tapa päästä haluttuun kansioon on käyttää absoluuttista polkua. Tämä on kätevää erityisesti silloin, jos löydät haluamasi tiedoston tiedostoselaimella, mutta et ole varma miten sinne pääsee komentokehotteessa. Tiedostoselaimessa saat auki olevan hakemiston
absoluuttisen polun
näkyviin klikkaamalla osoiteriviäTästä osoitteen voi kätevästi kopioida komentokehotteeseen cd-komennon perään jolloin siirryt suoraan kyseiseen kansioon.
C:\User\aasi>cd C:\Users\aasi\Documents\Ohjelmointi C:\Users\aasi\Documents\Ohjelmointi>
Takaisin ylempään kansioon pääsee myös cd-komennolla, mutta kansion nimen sijasta laitetaan kaksi pistettä:
C:\Users\aasi\Documents\Ohjelmointi>cd .. C:\Users\aasi\Documents>cd .. C:\Users\aasi>
Komentokehote ja hakemistot (OS X / Linux)¶
Unix-pohjaisissa käyttöjärjestelmissä terminaalin käyttö on tyypillisesti paremmin integroitu graafiseen käyttöliittymään. Kuten Windowsissa, myös tällä puolella komentokehotteessa on aina aktiivinen hakemisto, ja tekstikomennoilla voidaan siirtyä paikasta toiseen. Komennot ovat:
cd
: (change directory) komento jolla siirrytään toiseen hakemistoon jokorelatiivisestitaiabsoluuttisestils
: (listing) komento joka näyttää aktiivisen hakemiston sisällön
Komentokehote aukeaa yleensä omaan kotihakemistoosi, jonka oletusrakenne vaihtelee OS X:n ja eri Linux-distrojen välillä. Tyypillisiä alikansioita ovat tälläkin puolella esim. Downloads ladatuille tiedostoille ja Documents käyttäjän omille tiedostoille. Jos oletetaan, että Documentsin alle on luotu Ohjelmointi-niminen kansio, sinne siirryttäisiin kotihakemiston juuresta seuraavasti (~ on lyhennemerkintä kotihakemistolle):
aasi@linuxpurkki:~$ cd Documents aasi@linuxpurkki:~/Documents$ cd Ohjelmonti aasi@linuxpurkki:~/Documents/Ohjelmointi$
tai vaihtoehtoisesti kansiota voidaan yhdistää yhteen cd-komentoon:
aasi@linuxpurkki:~$ cd Documents/Ohjelmointi aasi@linuxpurkki:~/Documents/Ohjelmointi$
Unix-pohjaisissa graafisissa käyttöliittymissä on myös usein mahdollista avata komentokehote tiedostoselaimesta siten, että se aukeaa valittuun kansioon. Tyypillisesti tämä onnistuu valikosta joka aukeaa hiiren oikealla painikkeella. Yleensä on myös mahdollista kopioida auki olevaan kansioon johtava polku tiedostoselaimen osoiteriviltä ja liittää se cd-komennon perään
absoluuttisena polkuna
:aasi@linuxpurkki:~$ cd /home/aasi/Documents/Ohjelmointi aasi@linuxpurkki:~/Documents/Ohjelmointi$
Takaisin ylempään kansioon pääsee myös cd-komennolla, mutta kansion nimen sijasta laitetaan kaksi pistettä:
aasi@linuxpurkki:~/Documents/Ohjelmointi$ cd .. aasi@linuxpurkki:~/Documents$ cd .. aasi@linuxpurkki:~$
IPython asennus¶
Kurssilla käytetään esimerkeissä IPython-tulkkia, ja sen käyttöä suositellaan vahvasti myös opiskelijoille. IPythonissa on muutamilta osin merkittävästi miellyttävämpi käytettävyys kuin Pythonin mukana tulevan interaktiivisen tulkin. Asennus on vasta tässä kohtaa ohjeita, koska se pitää tehdä komentokehotteessa. Asennus pitää lisäksi tehdä ylläpitäjän oikeuksilla, joka onnistuu kun kirjoitat käynnistä-valikon hakuun
cmd
ja klikkaat ainoaa esiin tulevaa ohjelmaa hiiren oikealla napilla, mistä voit valita suorituksen ylläpitäjän oikeuksilla.pip install ipython
ja Linuxissa ja Mac OS X:ssä komennolla
pip3 install ipython
Yksi mahdollinen ongelma on, että komentokehote herjaa ettei löydä pip-komentoa. Tällöin Pythonin scripts-hakemisto ei ole PATH-ympäristömuuttujassa jolloin helpointa on asentaa Python uudestaan ja varmistaa, että olet ruksannut "Add Python 3.7 to PATH" -kohdan.
Lisäksi pip saattaa huomauttaa, että siitä on uusi versio saatavilla. Tämä näkyy asennuksen lopussa keltaisena varoitustekstinä.
Ilmoitukselle ei tarvi tehdä mitään, mutta jos haluat eroon siitä voit toimia ohjeen mukaan ja päivittää pip-ohjelman kirjoittamalla
pip install --upgrade pip
Interaktiivisen Python-tulkin käyttö¶
Interaktiivisessa Python-tulkissa
voimme suorittaa Python-koodia rivi riviltä. Käynnistetään tulkki kirjoittamalla komentokehotteeseen ipython
Kun olet saanut IPython-tulkin auki
komentokehotteessa
, rivin alkuun ilmestyy In [1]:
Tästä tiedät olevasi tulkissa
. Kokeile nyt muutamia yksinkertaisia matemaattisia
operaatioita
, esimerkiksi yhteen-, vähennys-, kerto- ja jakolaskua luvuilla. Huomaat, että jo näillä taidoilla Pythonia voi käyttää laskimena!In [1]: 1 + 1
Out[1]: 2
In [2]: 5 * 3 - 4
Out[2]: 11
In [3]: 9 / 2
Out[3]: 4.5
Python-tulkista poistuminen¶
Jotta voit suorittaa seuraavan vaiheen, sinun tulee palata
komentokehotteeseen
eli poistua Python-tulkista
. Tiedät olevasi tulkissa, jos näet edelleen rivin alussa In [N]:
. IPythonia käyttäessä poistuminen tapahtuu painamalla Ctrl + DJos käytät IPythonin sijasta tavallista Python-tulkkia Windowsissa, siitä poistutaan painamalla ensin Ctrl + Z jolloin riville ilmestyy
^Z
. Tämän jälkeen tulee vielä painaa Enter. Mac- ja Linux-koneilla ei ole tätä eroa. Python-kooditiedostojen suorittaminen¶
Kun haluamme ohjelmoida todellisia ohjelmia, emmekä suorittaa koodia vain rivi kerrallaan, meidän on kirjoitettava koodi niin sanottuun
lähdekooditiedostoon
jollain tekstieditorilla. Python-kooditiedostojen suorittaminen tapahtuu komentoriviltä
siten, että ensin liikutaan cd
-komennolla samaan hakemistoon, missä tiedosto sijaitsee. Tämän jälkeen suoritetaan komento ipython tiedostonnimi
, missä tiedostonnimi korvataan sen tiedoston nimellä, joka halutaan suorittaa.Esimerkiksi ylläoleva heimaailma.py-niminen tiedosto, joka sijaitsee hakemistossa Downloads, suoritettaisiin liikkumalla ensin kotihakemistosta hakemistoon Downloads komennolla
cd Downloads
ja sen jälkeen suorittamalla komento ipython heimaailma.py
(tai Mac OS X:ssä ja Linuxissa komento python3 tiedostonnimi
). Lataa tiedosto ylläolevasta linkistä (alaspäin osoittava vihreä nuoli) tietokoneesi Downloads-hakemistoon ja kokeile!Huomaa, että
tiedostopääte
on sisällytettävä mukaan tiedostonnimeen
. Python-kooditiedostoissa tuo pääte on aina .py
.Kooditiedostojen suorittamisesta IPythonilla ei ole kovin suurta etua. Teemme niin pääasiassa sen takia, että silloin kooditiedostoista syntyvät virheilmoitukset näyttävät samoilta kuin tulkissa syntyvät. Eli kurssilla ei tarvitse opetella lukemaan kahdenlaisia virheilmoituksia.
Ohjelmointiharjoituksia¶
Näissä esitehtävissä tutustutaan hyvin pintapuolisesti Python-koodin kirjoittamiseen ja ohjeiden antamiseen tietokoneelle. Apuna käytetään Turtle-nimistä
kirjastoa
, joka tulee Pythonin perusasennuksen mukana, ja jolla voi piirtää grafiikkaa antamalla tietokoneelle käskyjä. Turtlessa on käskyjä kohtalaisen paljon, mutta näissä tehtävissä käytämme vain muutamaa niistä. Turtlea käytetään myös myöhemmin kurssilla kunkin harjoituskerran lämmittelytehtävänä.Kuvalähteet¶
- alkuperäinen lisenssi: CC-BY-NC 2.0 (teksti lisätty)
Anna palautetta
Kommentteja ohjeista?