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.Virtuaalikoneet PC-luokissa¶
Kaikki tarpeelliset asennettavat ohjelmat löytyvät osaston koneilta virtuaalikoneelta nimeltä
Python3
. Sen löydät avaamalla Käynnistä-valikon hakukentän, jonka saat auki klikkaamalla vasemman alalaidan ikkunakuvaketta tai painamalla näppäimistöstä ⊞ Win -näppäintä, joka löytyy Ctrl- ja Alt-näppäinten välistä, ja valikon auettua kirjoittamalla python3
. Virtuaalikoneen työpöydältä löytyvät niin tekstieditori (Notepad++) kuin pätevä terminaaliohjelma
(ConsoleZ). Jos virtuaalikonetta pyörittävä VMWare-ohjelma ilmoittaa päivityksistä tai muusta sellaisesta, valitse ”Skip this version”. Virtuaalikonetta on aina käytettävä, kun tekee tehtäviä PC-luokissa, koska Pythonin kolmosversio on asennettu vain virtuaalikoneille!Virtuaalikoneita käyttäessä täytyy muistaa, että kaikki niille tallennetut tiedostot katoavat sammutettaessa. Jostain tuntemattomasta syystä virtuaalikoneiden verkkoasemia ei olla saatu toimimaan valituksista huolimatta. Lovelacea käyttäessä on kuitenkin hyvä pitää mielessä, että kaikki sinne lähtetetyt tiedostot voit aina käydä lataamassa tehtävän vastaukset-linkistä (ks. etusivun ohje). Eli sitä kautta saat työsi talteen myös virtuaalikoneilta.
Asennukset¶
Seuraavia ohjeita kannattaa noudattaa asentaessa ohjelmistoja kotikoneelle. Jos käytät osaston tietokonetta harjoitusten tekemiseen, voit harjoituksissa siis oikaista tämän osion yli suoraan otsikkoon ”
Komentokehotteen
käyttö” – esimerkiksi sivun oikean laidan sisällysluetteloa käyttämällä. Palaa näihin ohjeisiin 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.
- 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.0-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 omalla 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.0
- ./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.
Kun ohjelma on asentunut, kannattaa tehdä pari muutosta sen asetuksiin.
- 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ä.PyCharm-kehitysympäristö¶
PyCharm on kehitysympäristö, joka tekee hyvin paljon muutakin kuin tekstieditorit. Tekstieditorin lisäksi
Python-tulkki
, jota käsittelemme myöhemmin, integroituu kehitysympäristöön, ja sen sisällä voi ajaa Python-konsolia
, jolloin ei ole välttämättä tarpeen ajaa Pythonia erikseen komentokehotteesta
. PyCharm on huomattavasti isompi sovellus kuin mikään mainituista tekstieditoreista ja haukkaa enemmän muistia. PyCharmia käytettäessä kaikki koodit sijoitetaan projekteihin, mistä seuraa hieman lisätyötä, jos haluaa vain tehdä pieniä skriptejä.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ä. Sillä siis pärjää, mutta elämäänsä voi helpottaa asentamalla ConsoleZ-ohjelman. Ohjelma löytyy myös PC-luokkien virtuaalikoneista, joissa sen käyttö on suositeltua.- Lataa ohjelma sen kehittäjän GitHub-sivulta.
- Pura zip-paketti sopivaan kansioon. Ohjelma ei vaadi erillistä asennusta.
- Ohjelma käynnistetään
console.exe
:ä kaksoisklikkaamalla. - Halutessasi voit tehdä ohjelmasta pikakuvakkeen ja laittaa sen esimerkiksi työpöydälle.
Asetuksista kannattaa laittaa päälle Copy on select, jolloin ohjelma kopioi maalatun tekstin aina suoraan leikepöydälle.
- Avaa Edit -> Settings…
- Valitse oikealta Behavior
- Laita rasti kohtaan ”Copy on select”
Kannattaa myös asettaa oletuskansio Console-välilehdestä esim. omaksi kotihakemistoksi:
Komentokehotteen käyttö¶
Windowsilla avaa ensin Suorita-ikkuna näppäinyhdistelmällä ⊞ Win+R. Sen jälkeen kirjoita tekstikenttään komento
cmd
ja paina enteriä. Jos sen sijaan asensit edellä mainitun ConsoleZ:n, voit käynnistää sen ohjelman pikakuvakkeesta. Virtuaalikoneilta ConsoleZ löytyy asennettuna, joten käytä sitä harjoituksissa. 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.Komentorivillä hakemistorakenteessa liikkuminen tapahtuu
cd
-komennolla eli cd hakemistopolku
, missä hakemistopolku korvataan sen hakemiston polulla, jonne halutaan päätyä. Esimerkiksi Documents-hakemistoon liikuttaisiin komennolla cd Documents
.Interaktiivisen Python-tulkin käyttö¶
Interaktiivisessa Python-tulkissa
voimme suorittaa Python-koodia rivi riviltä. Käynnistetään tulkki kirjoittamalla komentokehotteeseen python
tai Mac OS X:ssä ja Linuxissa python3
(koska pelkkä python
käynnistää kakkosversion). Jos olet varmasti asentanut Pythonin, mutta Windowsin komentokehote
herjaa tämän näköistä:'python' is not recognized as an internal or external command, operable program or batch file.
Pythonia ei ole asetettu PATH-ympäristömuuttujaan, joka määrittelee mistä kaikkialta Windows etsii käynnistettäviä komentoja.
Kun olet saanut Python-tulkin auki
komentokehotteessa
, rivin alkuun ilmestyvät >>>
-merkit. Näistä merkeistä 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!>>> 1 + 1
2
>>> 5 * 3 - 4
11
>>> 9 / 2
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 >>>
. Poistuminen tapahtuu Windows-koneilla painamalla Ctrl + Z ja sen jälkeen Enter. Linux- ja Mac-koneilla poistuminen tapahtuu painamalla Ctrl + D. Paremman interaktiivisen Python-tulkin asentaminen¶
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 hoituu Windowsissa kirjoittamalla komentokehotteeseen
pip install ipython
ja Linuxissa ja Mac OS X:ssä komennolla
pip3 install ipython
Mikäli asennus valittaa puuttuvista kirjoitusoikeuksista, käynnistä komentokehote ylläpitäjän oikeuksilla ja kirjoita komento uudestaan. Jatkossa siis Python käynnistetään kirjoittamalla komentokehotteeseen ipython. Windowsissa tämä onnistuu kun kirjoitat hakukenttään cmd ja painat Ctrl + Shift + Enter.
IPython-tulkin käyttö¶
Merkittävin visuaalinen ero normaaliin tulkkiin verrattuna on se, että IPythonin käyttöliittymässä ei ole >>>-merkkejä rivillä jolle syötetään komentoja. Sen sijaan koodin syötön edessä lukee
In [N]:
jossa N on syöterivin numero. Paluuarvot IPython esittää muodossa Out [N]:
. Eli aiempi matematiikkaesimerkki näyttäisi IPythonissa tältä:In [1]: 1 + 1
Out[1]: 2
In [2]: 5 * 3 - 4
Out[2]: 11
In [3]: 9 / 2
Out[3]: 4.5
Käytämme tätä notaatiota jatkossa materiaalin esimerkeissä – siitä tietää aina, että kyseessä on tulkissa suoritettava esimerkki. Samaten, jos numerointi alkaa jostain muusta kuin ykkösestä, tiedät että kyseessä on jatkoa edelliselle esimerkille ja ne tulisi suorittaa sulkematta tulkkia välissä.
Lisäksi IPythonissa on ominaisuus jota kutsutaan nimellä tab completion. Kun painat Tab kirjoittaessasi, IPython etsii kaikki olemassaolevat nimet jotka alkavat kirjoittamallasi pätkällä ja voit nuolinäppäimillä valita niistä sen mitä olit hakemassa. Tämän hyödyllisyys ilmenee hieman myöhemmin, ja sitä esitellään tämän vuoksi tarkemmin myöhemmällä luennolla.
Huom: IPythonista poistutaan myös Windowsissa painamalla Ctrl + D
Komentorivillä nagivointi¶
Jos noudatit aiempia ohjeita ja asetit ConsoleZ:ssa oletushakemistoksi kotihakemistosi, avautuu komentokehote tähän hakemistoon (yleensä C:\Users\testiaasi tms). Linux- ja Mac-tietokoneilla terminaali avautuu ihan oletuksena käyttäjän kotihakemistoon (yleensä /home/testiaasi tms). Tiedät olevasi komentokehotteessa, jos rivillä lukee
C:\Users\testiaasi>
(Win) tai testiaasi@aasinkone:~$
(Linux). Tavoitteena on nyt liikkua paikkaan, jossa on suoritettavia kooditiedostoja
. Näet tämän sijainnin tyypillisesti tekstieditorista kun editoit tiedostoa ja latausikkunasta kun lataat kooditiedostoja Lovelacesta (jos et näe latausikkunaa, selain käyttää todennäköisesti oletuskansiota joka on yleensä Downloads tai vastaava, kotihakemiston alla). Komentokehotteessa hakemistosta toiseen liikutaan
cd
-komennolla. Nyt jos siis olemme seuranneet ohjeita tähän asti ja täten komentorivi on auki kotihakemistossa, pitäisi esim. Downloads-kansioon päästä kirjoittamalla cd Downloads
. Entäpä sitten jos päätämmekin tehdä kotihakemistoon OA-kansion ja sijoittaa kooditiedostot sinne? Komentorivillä pääsee hakemistopuussa taaksepäin kirjoittamalla cd ..
. Eli jos äsken oltiin Downloads-kansiossa, tämän komennon jälkeen oltaisiin jälleen kotihakemistossa jolloin voidaan kirjoittaa cd OA
. Tätä kutsutaan relatiiviseksi liikkumiseksi, koska liikkuminen tapahtuu aina askel kerrallaan siitä sijainnista jossa ollaan.Sijaintia voi myös vaihtaa antamalla cd-komennolle kokonaisen polkunimen:
cd C:\Users\testiaasi\OA
-komennolla päästäisiin mistä tahansa tähän kotihakemiston alla olevaan OA-kansioon. Tämä voi olla hyödyllistä, jos olet esim. unohtanut säätää ConsoleZ:n oletuskansion ja se avaa käynnistettäessä komentorivin omaan hakemistoonsa.Muuta huomionarvoista on se, että työasemaluokkien virtuaalikoneella K-aseman juuri (K:\) toimii kotihakemistona ja ConsoleZ avautuu oletuksena sinne. Suosittelemme alikansion tekemistä sinne, koska tiedostoja kertyy aika paljon.
Python-kooditiedostojen suorittaminen¶
Kun haluamme ohjelmoida todellisia ohjelmia, emmekä suorittaa koodia vain rivi kerrallaan, meidän on kirjoitettava koodi niin sanottuun
lähdekooditiedostoon
. 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?