Kirjoittaminen ja ohjelman kääntäminen Python-ohjelmassa
Ohjelmoinnissa käytetään sovittuja sääntöjä, jotka on ennalta ohjelmoitu ohjelmointikieleen. Halutut käskyt kirjoitetaan tekstieditoriin ja sen jälkeen teksti käännetään. Kääntäminen tapahtuu run-komennolla tai selain-ohjelmassa -painikkeella. Käännetty teksti tulee näkyviin toiseen ruutuun.
HUOM! Kun ohjelma havaitsee koodissa virheen, niin se näytetään “error”-tekstinä. Tekstissä on kerrottu ensimmäinen rivi, missä virhe havitaan. Opettele lukemaan “error”-tekstiä ja selvittämään itse, miksi koodi ei toimi. Tähän oppii vain yrityksen ja erehdyksen kautta.
Alla olevassa kuvassa nähdään, että virhe on rivillä 2 (line 2). Seuraavalla rivillä näkyy virheen paikka.
Ohje tehtävien tekoon
Idea on tutustuttaa käyttäjää ohjelmointikieleen. Voit aluksi kokeilla kirjoittaa koodin ja opetella lukemaan error-tekstejä. Jos tämä tuntuu liian haasteelliselta, voit kirjoittaa ratkaisusta koodin Python-ohjelmaan ja “ajaa” koodin kääntäjällä. Kokeile koodin toimivuutta antamalla ohjelmassa arvoja kysymyksiin.
HUOM! Kysy opettajaltasi, miten hän haluaa tehtävän palautettavan: kopioidaanko teksti Docs- tai Word-tiedeostoon ja jaetaanko tiedosto opettajalle vai miten.
Kirjoittamasi koodin voi myös tulostaa tai tallentaa pdf-muodossa.
Tulostaminen = tekstin näyttäminen ohjelmassa
Tulostaminen tapahtuu käskyllä print(). Kun halutaan tulostaa sana, laitetaan sana lainausmerkkeihin.
Esimerkki 1.
Tulosta luku 7 ja sana kettu.
print(7) print(kettu)
Tehtävä 1.
Lue ohjeet ja kokeile käskyjä Python-ohjelmassa.
HUOM! Älä pyyhi kirjoitettua koodia. Jatka koodin kirjoittamista seuraavalle riville.
print(6) = tulostaa numeron sulkeiden sisältä. Ymmärtää merkin lukuna.
HUOM! Muista painaa play- tai run-käskyä, jotta ohjelma lähtee kääntämään tekstiä.
print(“testi”) = tulostaa tekstin lainausmerkkien sisältä.
HUOM! Älä pyyhi kirjoitettua koodia. Anna uusi käsky seuraavalle riville.
print(“5”) = tulostaa merkin 5 lainausmerkkien sisältä, ei ymmärrä merkkiä 5 luvuksi, vaan “kirjaimena” 5.
HUOM! Voit kirjoittaa käskyn seuraavalle riville. Ohjelmakieli aloittaa lukemisen 1. riviltä ja toteuttaa rivi riviltä käskyt.
Tehtävä 2.
Kirjoita kolme eri tulostusta eri riveille siten, että ohjelma tulostaa kaikki käskyt.
Laskeminen Python-ohjelmalla
Print käskyn sisään voit sijoittaa normaalit laskutoimitukset \(+,-,*, / \). Myös sulkeet toimivat print-käskyn sisällä.
Tehtävä 3.
Laske seuraavat laskut Python-ohjelmalla.
a) 5+6-9+7*8
b) 5*2*6+9-7+6
c) 2*3+3-(8-6)
HUOM! Älä pyyhi kirjoitettua koodia. Anna uusi käsky seuraavalle riville.
Muuttujat
Lukujen arvot voidaan tallentaa kirjaimille tai sanoille. Kirjainta tai sanaa sanotaan muuttujaksi.
Tallentaminen tapahtuu kirjoittamalla muuttujan nimi, yhtäsuuruusmerkki ja luku, jota muuttuja käyttää.
Esimerkki 2.
Tallennetaan ohjelmaan muuttujan \(x\) arvoksi luku \(15\).
x=15
Tehtävä 4.
Muodosta muuttuja \(x\) ja anna sille arvo \(6\). Tulosta muuttuja.
Ratkaisu:
HUOM! Älä pyyhi kirjoitettua koodia. Anna uusi käsky seuraavalle riville.
Viimeisen rivin muuttujan arvo
Viimeisin uusi arvo korvaa edellisen muuttuja arvon.
Tehtävä 5.
Korvaa muuttujan \(x\) arvo luvulla \(7\) ja tulosta muuttuja. Tämän jälkeen anna muuttujalle uusi arvo \(9\) ja tulosta muuttuja.
Ratkaisu:
HUOM! Älä pyyhi kirjoitettua koodia. Anna uusi käsky seuraavalle riville.
Tekstin tulostaminen uselle riville
Käsky \n katkaisee tekstin ja tulostaa loput toiselle riville.
Esimerkki 3.
Tulostetaan lause “Koira on musta” kahdelle eri riville.
print("koira \n on musta")
Tehtävä 6.
Tulosta lause homman nimi on matematiikka sekä yhdelle riville ja niin, että rivi vaihtuu jokaisen sanan jälkeen.
Ratkaisu:
HUOM! Älä pyyhi kirjoitettua koodia. Anna uusi käsky seuraavalle riville.
Tietojen kysyminen käyttäjältä
Muuttujan arvot voidaan kysyä käyttäjältä input käskyllä.
Aluksi kirjoitetaan muuttuja, jolle käyttäjän antama arvo tallennetaan, tulostettava teksti kirjoitetaan input käskyn sisään.
Esimerkki 4.
Kysytään käyttäjän nimeä, joka tallentuu muuttujan nimi arvoksi.
nimi=input("Mikä on nimesi? ")
Tehtävä 7.
Kysy käyttäjältä luku, joka tallennetaan muuttujan \(x\) arvoksi. Tulosta muuttujan arvo.
Ratkaisu: (lue alla oleva punainen teksti!)
HUOM! Älä pyyhi kirjoitettua koodia. Jatka koodin kirjoittamista seuraavalle riville.
Muuttuja ja teksti erotetaan tulosteessa pilkulla, teksti tulee lainausmerkkien sisään, muuttuja ei.
Huom! Ohjelma kysyy käyttäjältä arvoa ja odottaa, että arvo annetaan. Kirjoita mustaan pohjaan jokin luku. Kun luku on annettu, ohjelma jatkaa eteenpäin koodissa.
Käyttäjä antaa luvuksi 1000 ja painaa enter. Ohjelma tulostaa luvun.
HUOM! Älä pyyhi kirjoitettua koodia. Jatka koodin kirjoittamista seuraavalle riville.
Tehtävä 8.
Kysy käyttäjältä ikä ja tallenna sen arvo muuttujalle ikä. Tulosta teksti, jossa lukee “Sinun ikäsi on:” annettu muuttujan arvo.
Ratkaisu:
HUOM! Älä pyyhi kirjoitettua koodia. Anna uusi käsky seuraavalle riville.
Tulosteessa voit yhdistää useita tekstejä ja muuttujia
Tehtävä 9.
Tulosta kysymys: “onko oikeasti ikäsi annettu ika vuotta?”
Ratkaisu:
HUOM! Älä pyyhi kirjoitettua koodia. Anna uusi käsky seuraavalle riville.
Useita muuttujia
Voit pyytää käyttäjältä useita muutujan arvoja. Eri pyynnöt kirjoitetaan eri riveille.
Tehtävä 10.
Kysy käyttäjältä kolmen muuttujan \(x\),\(y\) ja \(z\) arvot. Tulosta teksti “Annoit arvot muuttuja \(x\), muuttuja \(y\) ja muuttuja \(z\)”
HUOM! Älä pyyhi kirjoitettua koodia. Anna uusi käsky seuraavalle riville.
Kommentointi #
Koodin eteen laitettu # muuttaa koodin kommentiksi
Tehtävä 11.
Laita edellisten rivien käskyjen eteen #.
Ratkaisu:
Kun saat tehtävän tehtyä oikein, laita # merkki tehtäviän koodirivien eteen.
Muuttujien tyypit
Jotta muuttujilla tehtävät laskut laskettaisiin oikein, on ohjelmassa muuttujille määritettävä muuttujatyypit.
str = merkkijono. Tällöin kaikki syötetty on merkkeinä. Ohjelma ei ymmärrä luvuksi (oletus muutujille).
int = kokonaisluku (katkaisee luvun pisteen kohdalta EI PYÖRISTÄ)
float = liukuluku (desimaaliluku)
Esimerkki 5.
Annetaan muuttujalle x arvo 7 ja muutetaan tämän jälkeen muuttujan tyyppiä str, int ja float tyypeiksi. Huom viimeisen rivin tyyppi jää voimaan.
x=7 x =str(7) x =int(7) x =float(7)
Tehtävä 12.
Pyydä käyttäjätä muuttujalle \(x\) arvo. Tulosta lauseke \(x+x\).
Kun saat tehtävän tehtyä oikein, laita # merkki tehtäviän koodirivien eteen.
Tehtävä 13.
Pyydä käyttäjältä muuttujalle \(x\) arvo. Muunna annettu \(x\):n arvo liukuluvuksi käskyllä float. Tulosta lauseke \(x+x\)
Ratkaisu:
Kun saat tehtävän tehtyä oikein, laita # merkki tehtäviän koodirivien eteen.
Desimaaliluvun pyöristäminen
Pyöristäminen tapahtuu round käskyllä. Käskyssä round(x,3) ensin tulee luku tai muuttuja ja pilkun jälkeen haluttu tarkkuus (kolme desimaalia). Jos haluttua desimaaliarvoa ei ole, niin ohjelma tulostaa kokonaislukujen tarkkuuteen.
Esimerkki 6.
Pyöristetään luku 23456.3456 kahden desimaalin tarkkuudella.
round(23456.3456,2)
Tehtävä 14.
Pyydä käyttäjältä muuttujalle \(x\) desimaalilukuarvo. Muunna muuttujan \(x\):n tyypiksi liukuluku käskyllä float. Tulosta lauseke \(x+x\). Tulosta myös pyöristetty lauseke \(x+x\).
Ratkaisu:
Kun saat tehtävän tehtyä oikein, laita # merkki tehtäviän koodirivien eteen.
Muuttujilla laskeminen
Ennen laskemista muuttujien tyypit pitää muuttaa liukuluvuiksi float käskyllä.
Ennen laskemista muuttujien tyypit pitää muuttaa liukuluvuiksi float käskyllä.
Esimerkki 7.
Muutetaan muuttujien x ja y tyypiksi float eli liukuluku.
x=float(x) y=float(y)
Tehtävä 15.
Pyydä käyttäjältä muuttujille \(x\), \(y\) ja \(z\) arvot. Muunna luvut liukuluvuiksi. Tulosta lauseke “Lukujen summa on:” muuttujan \(x\) arvo + muuttujan \(y\) arvo + muuttujan \(z\) arvo. Tulosta myös lauseke: “Lukujen tulo on:” muuttujan \(x\) arvo * muuttujan \(y\) arvo * muuttujan \(z\) arvo.
Kun saat tehtävän tehtyä oikein, laita # merkki tehtäviän koodirivien eteen.
Muuttujatyypin määrittäminen arvoa kysyessä
Voit määrittää muuttujatyypin float, str tai int, kun pyydät muuttujille arvoja. Muuttujatyyppi kerrotaan ennen input käskyä.
Esimerkki 8.
Kysytään käyttäjältä lukua. Tallennetaan luku muuttujaksi \(x\) ja määritellään luku liukuluvuksi (float).
x=float(input("Anna luvulle jokin arvo: "))
Tehtävä 16.
Pyydä käyttäjältä muuttujalle \(x\) arvo siten, että arvo tallentuu suoraan liukuluvuksi (float).
Tulosta lauseke “Lukujen summa on:” muuttujan \(x\) arvo + muuttujan \(x\) arvo + muuttujan \(x\) arvo.
Ratkaisu:
Kun saat tehtävän tehtyä oikein, laita # merkki tehtäviän koodirivien eteen.