Laskutoimitukset ja muuttujat
Terminaali
Kun avaat IDLE:n, ensimmäisenä eteesi avautuu Pythonin terminaali. Terminaaliiin voi kirjoittaa yksittäisiä komentoja ja ne suorittuvat heti. Kokeillaan hiukan miten terminaali toimii!
Laskutoimitukset
Yksinkertaisimmat komennot, joita terminaaliin voi kirjoittaa, ovat erilaiset laskutoimitukset. Pythonilla voi laskea helposti vaikkapa yhteen-, vähennys-, kerto ja jakolaskuja. Erilaiset laskutoimitukset ovat tärkeitä myös monimutkaisemmissa ohjelmissa.
Muuttujat
Kun haluamme ottaa tietoa talteen myöhempää käyttöä varten, tarvitsemme muuttujia. Muuttuja on kuin laatikko tietokoneen muistissa. Laatikkoon merkitään päälle mitä laatikon sisällä on ja laitetaan asia laatikkoon. Myöhemmin oikeat asiat on helppo löytää nimikoiduista laatikoista.
Samalla tavalla muuttujalle annetaan nimi ja siihen tallennetaan arvoja. Esimerkiksi voimme nimetä muuttujan luku ja laittaa sinne arvon 17. Tämä tehdään Pythonissa komennolla luku = 17
. Ensin siis sanotaan muuttujan nimi, sen jälkeen tulee yhtäsuuruusmerkki ja sitten muuttujaan laitettava arvo.
Muuttujan arvoa voi myös muuttaa myöhemmin samalla tavalla. luku = 17
luo uuden muuttujan, jos sellaista ei vielä ole. Jos muuttuja on jo aiemmin luotu, se vain antaa sille uuden arvon.
Kun myöhemmin koodissamme kirjoitamme muuttujamme nimen, tietokone etsii muistista muuttujan arvon ja käyttää sitä.
Esimerkkejä
koodi | mitä tekee |
---|---|
1+2 | laskee lukujen 1 ja 2 summan eli tulos on 3 |
2-6 | laskee lukuje 2 ja 6 erotuksen eli tulos on -4 |
2*2 | laskee lukujen 2 ja 2 tulon eli tulos on 4 |
10/5 | laskee lukujen 10 ja 5 osamäärän eli tulos on 2 |
luku = 1 | tallentaa muuttujaan nimeltä luku arvon 1 |
luku + 4 | laskee muuttujan luku arvon ja luvun 4 summan |
luku1*luku2 | laskee muuttujien luku1 ja luku2 arvojen tulon |
a = a + 1 | tallentaa muuttujaan a muuuttujan a vanhan arvon ja ykkösen summan, eli kasvattaa a:n arvoa yhdellä. |
Tehtävät
-
Avaa Idlen terminaali. Seuraavat tehtävät tehdään terminaalissa.
-
Laske alla olevat laskut Pythonin terminaalissa:
-
Laske alla olevat laskut Pythonin terminaalissa:
-
Luo muuttuja nimeltä ikä ja tallenna muuttujaan oma ikäsi.
-
Laske ikäsi viiden vuoden päästä muuttujan avulla.
-
Luo muuttuja munikä, johon tallennat oman ikäsi. Luo muuttuja sunikä ja tallenna siihen vierustoverisi ikä. Laske ikänne yhteen muuttujien avulla.
Tulostus ja tietotyypit
Oma tiedosto
Terminaalissa voi testailla yksittäisiä komentoja, mutta ohjelman kirjoittamiseen se ei sovellu. Jos haluamme kirjoittaa ohjelman, jossa on useita rivejä ja jonka voimme tallentaa, meidän pitää kirjoittaa se tiedostoon. Tiedostoon tallennetun ohjelman voi suorittaa, jolloin tietokone suorittaa sen komennot lähtökohtaisesti rivi kerralla ylhäältä alas.
Tulostus
Kun haluamme ohjelman kirjoittavan jotain terminaalii, käytetään komentoa print()
. Sulkujen sisään laitetaan tulostettava asia.
Luvut ja merkkijonot
Kun tietokone käsittelee tietoa, sille on tärkeää millainen tieto on kyseessä. Erilaisia tietoja ovat muun muassa luvut, kuten kokonaisluvut, ja teksti, jota kutsutaan merkkijonoksi. Pythonissa kun muuttujaan tallettaa tietoa, tietokone päättelee annetusta tiedosta automaattisesti tietotyypin. Esimerkiksi koodista x = 1
, tietokone osaa päätellä, että x
on kokonaisluku, koska 1
on kokonaisluku. Tekstin eli merkkijonot se tunnistaa tekstin ympärillä olevista lainausmerkeistä, esim. y = "sana"
. Jos tekstin kirjoittaa ilman lainausmerkkejä, tietokone ei ymmärrä kyseessä olevan tekstiä, vaan ajattelee sen olevan komento tai muuttuja. Tällöin ohjelma ei suoritu oikein.
Myös merkkijonoja voi laskea yhteen, mutta niitä ei voi vähentää, kertoa tai jakaa. Merkkijonojen yhteenlasku yhdistää kaksi merkkijonoa. Myös muuttujia, joiden arvo on merkkijono, voidaan laskea yhteen merkkijonojen kanssa. Esim. jos meillä on muuttuja nimi = "Kaneli"
, voimme yhdistää "Moikka " + nimi
, jolloin saamme merkkijonon "Moikka Kaneli"
.
Esimerkkejä
koodi | mitä tekee |
---|---|
print(“moikka”) | tulostaa terminaaliin viestin moikka |
print(2) | tulostaa terminaaliin 2 |
print(2+2) | tulostaa terminaaliin 4 |
print(“2+2”) | tulostaa terminaaliin 2+2 |
print(muuttuja) | tulostaan terminaaliin muuttujan arvon |
print(“muuttuja”) | tulostaa terminaaliin muuttuja |
print(“moi” + “kka”) | tulostaa terminaaliin moikka |
Tehtävät
-
Luo Idlessä uusi tiedosto ja nimeä se testi.py. Seuraavat tehtävät tehdään tähän tiedostoon.
-
Kirjoita ohjelma joka tulostaa tekstin: Hei! Olen robotti.
-
Kirjoita ohjelma joka tulostaa tekstin: Hei! Olen ihminen.
-
Kirjoita ohjelma, joka tulostaa ikäsi.
-
Kirjoita ohjelma, joka tulostaa ikäsi kymmenen vuoden päästä käyttäen yhteenlaskua.
-
Kirjoita ohjelma, joka tulostaa laskutoimituksen 4+2 (EI sen tulosta 6!)
-
Kirjoita ohjelma, joka tulostaa
0000 0 0 0 0 0000
-
Ohjelmoi tervehtijä
-
Luo muuttuja nimi ja tallenna siihen nimesi.
-
Tulosta muuttujan avulla Hei nimi, jossa nimi on oma nimesi.
-
-
Kirjoita tarina muuttujilla
-
Luo muuttujat x ja y ja anna niille haluamasi arvot. Esim. Tiittu ja robotti.
-
Kirjoita tarina käyttäen muuttujia x ja y ja seuraavaa tekstiä:
-
Olipa kerran x. x oli hieno y.
Mutta se, että x oli y aiheutti ongelmia, sillä kaikki eivät pitäneet siitä, että x oli y.
Jonkin ajan kuluttua muut kuitenkin hyväksyivät että x oli y, koska x oli niin ystävällinen y. Ja kaikki elivät onnellisina elämänsä loppuun asti.
Käyttäjän syöte ja tietotyyppien muuttaminen
Käyttäjän syöte
Kun haluamme saada tietoa ohjelman käyttäjältä, voimme käyttää komentoa input()
. Tämän komennon jälkeen, kun terminaaliin kirjoittaa jotain ja painaa rivinvaihtoa, kirjoitettu asia tulee ohjelman käyttöön. Tätä kirjoitettua asiaa kutsutaan syötteeksi. Syöte on ohjelman ulkopuolelta ohjelmalle annettua tietoa.
Tietotyyppien muuttaminen
Käyttäjän syöte on aina merkkijono. Sitä ei siis voi suoraan vaikkapa laskea yhteen kokonaislukujen kanssa. Jos haluamme muuttaa annetun syötteen kokonaisluvuksi, käytämme komentoa int()
. Komennon nimi tulee englannin sanasta integer, joka tarkoittaa kokonaislukua. Muutettava arvo laitetaan komennon perässä olevien sulkeiden sisään.
Kaikkia merkkijonoja ei voi muuttaa kokonaisluvuksi. Esimerkiksi int("kissa")
antaa virheilmoituksen, koska tietokone ei ymmärrä miten kissasta saisi kokonaisluvun.
Vastaavasti kokonaisluvut voi muuttaa merkkijonoiksi komennolla str()
, joka on lyhenne englannin sanasta string ja tarkoittaa merkkijonoa.
Esimerkkejä
koodi | mitä tekee |
---|---|
vastaus = input() | tallentaa käyttäjän syötteen muuttujaan vastaus |
nimi = input(“Mikä on nimesi?”) | kirjoittaa terminaaliin Mikä on nimsesi? ja tallentaa muuttujaan käyttäjän syötteen muuttujaan nimi |
int(“42”) | muuttaa merkkijonon “42” kokonaisluvuksi 42 |
int(vastaus) | muuttaa muuttujan vastaus arvon kokonaisluvuksi (jos se on mahdollista) |
int( input() ) | muuttaa syötteen kokonaisluvuksi |
str(1) | muuttaa kokonaisluvun 1 merkkijonoksi “1” |
str(luku) | muuttaa muuttujassa luku olevan arvon merkkijonoksi |
Tehtävät
-
Tee ohjelma, joka toistaa sille annetun syötteen.
- Tee paranneltu tervehtijä
- Kysy käyttäjältä hänen nimeään ja tallenna se muuttujaan nimi.
- Tulosta Hei nimi, jossa nimi on käyttäjän antama syöte.
-
Tee ohjelma, joka kysyy käyttäjältä numeroa ja tulostaa sitten saman numeron kerrottuna kymmenellä.
- Muuta äskeistä ohjelmaa niin, että tulostuksessa sanotaan ensin “tässä on se kerrottuna kymmenellä: “.