Muuttuja

Takaisin pääsivulle

Tulostaminen

Tähän mennessä olemme tehneet ohjelmia, jotka piirtävät grafiikkaa ikkunaan. Ohjelmoinnin harjoittelussa on hyvä tuntea lisäksi komento print, joka tulostaa (eli kirjoittaa) tekstiä. Komento print lienee ohjelmoijan paras apuväline, sillä sitä voi käyttää erilaisten ohjelmoijaa helpottavien viestien kirjoittamiseen.

Seuraava ohjelma tulostaa viestin "Tervetuloa!":

# -*- coding: utf-8 -*-

def main():
    print "Tervetuloa!"

main()

Huomaa että yllä ei ole "pääsilmukkaa", vaan pääohjelmafunktiossa on vain kutsu print "Tervetuloa!". Emme myöskään ota peleissä käytettävää pygame-kirjastoa käyttöön.

Harjoituksia

Luo ohjelma, joka tulostaa viestin

saippuakauppias

Luo ohjelma, joka tulostaa viestin

3 + 2 = 5

Laskemista ja muuttujia

Edellisessä harjoitustehtävässä, jossa tulostettiin lasku "3 + 2 = 5" laskettiin itse luvut 3 ja 2 yhteen, jolloin lopputulokseksi saatiin 5. Ohjelmoinnissa on kätevää se, että tietokone voi laskea laskuja meidän puolesta. Suurimmassa osassa laskimista, jollei kaikissa, onkin käytössä ohjelmointikieli, jolla itse laskujen laskeminen on toteutettu.

Tehdään seuraavaksi ohjelma, joka osaa laskea laskun meidän puolesta. Ennen laskemista, tutustumme tärkeään käsitteeseen, muuttujaan. Muuttuja on tietokoneohjelmissa käytetty tietovarasto, johon voidaan tallentaa tietoa. Muuttujaan tallennettua tietoa voidaan myös lukea ja tulostaa.

Python-kielessä muuttujat esitellään aina yhtäsuuruusmerkin (=) vasemmalla puolella, ja oikealla puolella on arvo, joka muuttujaan tallennetaan. On yhtäkuin-merkin vasemmalle puolelle tulee vain muuttujan nimi, eikä mitään muuta. Seuraavassa esimerkissä luodaan muuttuja nimeltä viisi, ja asetetaan siihen arvo 5. Tämän jälkeen käytämme python-kielen komentoa print muuttujan sisällön tulostamiseen

# -*- coding: utf-8 -*-

def main():
    viisi = 5
    print viisi

main()

Kun suoritat eli ajat ylläolevan esimerkin näet tulostuksen "5". Huomaa että muuttuja esitellään yhtäsuuruusmerkin vasemmalla puolella, eikä siellä ole mitään muuta. Yhtäsuuruusmerkin oikealla puolella on arvo, joka muuttujaan asetetaan.

Muuttujan nimessä ei saa olla välilyöntejä, ja muuttujat kirjoitetaan pienillä kirjaimilla. Muuttujien nimet eivät myöskään saa alkaa numerolla.

Takaisin laskemiseen. Valitsemamme ohjelmointkieli osaa suorittaa erilaisia laskuja puolestamme, ja voimme sanoa asettaa muuttujaan esimerkiksi laskun tuloksen. Luodaan ohjelma, joka laskee luvut 5, 3 ja 7 yhteen, ja tulostaa laskun tuloksen.

# -*- coding: utf-8 -*-

def main():
    tulos = 5 + 3 + 7
    print tulos

main()

Ylläoleva ohjelma tulostaa arvon "15", joka on lukujen 5, 3 ja 7 summa. Voimme siis suorittaa laskuoperaatioita ohjelmointikielellä. Ohjelmointikielemme osaa laskea myös muita laskuja, esimerkiksi miinus, jako ja kerto-laskuja. Seuraava esimerkki näyttää miten miinus, jako ja kerto-laskuja voidaan käyttää.

# -*- coding: utf-8 -*-

def main():
    miinus = 123456 - 23456
    print miinus

    jako = 100000 / 10000
    print jako

    kerto = 10 * 50
    print kerto

main()

Ylläolevassa ohjelmassa on kolme erillistä tulostuskäskyä, joista kukin tulostaa käskylle annetussa muuttujassa olevan arvon. Ohjelman tulostus on seuraavanlainen.

100000
9
500

Harjoituksia

Luo ohjelma, joka asettaa muuttujaan laskun 3 + 1000 + 5 lopputuloksen, ja tulostaa muuttujan arvon. Keksi itse muuttujalle sopiva nimi!

1008

Luo ohjelma, joka asettaa muuttujaan laskun 1084 - 3000 + 4103 lopputuloksen, ja tulostaa muuttujan arvon. Keksi itse muuttujalle sopiva nimi!

2187

Muuttujan arvon muuttaminen

Muuttujan arvoa voi myös muuttaa, eli kun muuttujalle asetetaan arvo, sen ei tarvitse pysyä lopullisesti samana. Esimerkiksi muuttujaan, jossa on jo luku, voi lisätä toisen luvun.

# -*- coding: utf-8 -*-

def main():
    luku = 2
    luku = luku + 2
    print luku

main()
4

Mahdollisuus muuttujassa säilytettävien arvojen muuttamiseen on hyvin hyödyllistä. Esimerkiksi tietokonepelissä pelaajan sijainti ilmaistaan usein muuttujien avulla, jolloin pelaajaa ei voisi liikuttaa jos muuttujien arvoja ei voisi muuttaa.

Lukujen ja merkkien tulostaminen yhdessä

Merkkijono, eli teksti, koostuu yksittäisistä merkeistä. Merkkijonoon voi liittää muita muuttujia, plus (+)-merkin avulla. Muuttujia merkkijonoon liitettäessä täytyy kielelle vihjata, että se käsittelee muuttujat merkkijonotyyppisinä. Vihjaus merkkijonotyypistä tapahtuu komennon str avulla. Komennolle str annetaan parametrina muuttuja, joka halutaan merkkijonotyyppiseksi. Alla olevassa esimerkissämme muuttuja luku annetaan parametrina komennolle str.

# -*- coding: utf-8 -*-

def main():
    luku = 53.2
    print "Muuttujassa on tallennettuna luku " + str(luku)

main()
Muuttujassa on tallennettuna luku 53.2

Yllä olevassa esimerkissä tulostettiin merkkijonon "Muuttujassa on tallennettuna luku " jatkeeksi muuttujan luku sisältämä arvo. On myös mahdollista asettaa luku keskelle merkkijonoa.

# -*- coding: utf-8 -*-

def main():
    eka = 53.2
    toka = 322.2
    print "Eka: " + str(eka) + ", toka: " + str(toka)
Eka: 53.2, toka: 322.2

Erilaisten muuttujien yhteenliittämistä merkkijonoksi kutsutaan konkatenoinniksi.

Harjoituksia

Luo ohjelma, joka laskee laskun 60 * 60 * 24, ja tulostaa lopputuloksen seuraavasti:

Paivassa on 86400 sekuntia.

Kommentit

Kun ohjelmoidaan, törmätään usein tilanteeseen jossa halutaan kirjoittaa ohjelmakoodin idea myöhempää tarkastelua varten ylös. Kommentoinnilla tarkoitetaan myöhempää ohjelmakoodin lukemista helpottavien merkintöjen jättämistä lähdekoodiin. Kommentit alkavat risuaidalla (#), ja risuaidan jälkeistä syötettä ei ajeta ohjelmana.

# -*- coding: utf-8 -*-

# pääohjelmafunktio
def main():
    # luetaan käyttäjältä nimi
    nimi = raw_input("Hei, mikä on nimesi? ")
    # tulostetaan viesti "Hei " ja käyttäjän syöttämä nimi
    print "Hei " + nimi

# käynnistetään pääohjelmafunktio
main()

Syötteen lukeminen näppäimistöltä

Olemme tähän mennessä tutustuneet ohjelmiin, jotka eivät osaa vielä lukea käyttäjän kirjoittamia syötteitä näppäimistöltä. Komennolla raw_input voimme pyytää käyttäjää syöttämään tekstiä näppäimistöltä. Komento raw_input saa parametrikseen merkkijonon, eli tekstin, jota käyttäjältä kysytään. Käyttäjän syöttämä teksti asetetaan muuttujaan samalla tavalla kuin muuttujiin normaalistikin, eli muuttujan nimi kerrotaan yhtäsuuruus-merkin vasemmalla puolella, ja asetettava arvo -- tällä kertaa raw_input-komennon lukema merkkijono -- yhtäsuuruusmerkin oikealla puolella.

# -*- coding: utf-8 -*-

def main():
    nimi = raw_input("Hei, mikä on nimesi? ")
    print "Hei " + nimi

main()

Kun suoritat ylläolevan ohjelman, se kysyy sinulta nimeä ja tulostaa lopuksi nimen. Esimerkiksi syötteellä "Mikki" tulostus olisi seuraavanlainen.

Hei, mikä on nimesi? Mikki
Hei Mikki

Jos yritämme lukea syötettä, ja ajatella sitä lukuna, huomaamme että ohjelma antaa virheen.

# -*- coding: utf-8 -*-

def main():
    luku = raw_input("Kirjoita luku: ")
    luku = luku + 2
    print "Lukusi plus 2 on " + str(luku)

main()
Traceback (most recent call last):
  File "(tiedoston nimi)", line (rivinumero), in <module>
    (komento)
TypeError: cannot concatenate 'str' and 'int' objects

Tämä johtuu siitä, että syöte luetaan merkkijonona, ja ohjelma ei osaa laskea merkkijonoja ja lukuja yhteen. Syötteen voi muuttaa kokonaisluvuksi komennolla int. Komento int saa parametrina syötetyn merkkijonon, huomaa että voit antaa parametriksi käyttäjän syöttämän numeron.

# -*- coding: utf-8 -*-

def main():
    luku = int(raw_input("Kirjoita luku: "))
    luku = luku + 2
    print "Lukusi plus 2 on " + str(luku)

main()
Kirjoita luku: 5
Lukusi plus 2 on 7

Takaisin pääsivulle