Erilaisia tyyppejä
Monessa muussa ohjelmointikielessä pitää jo ennen muuttujan ensimmäistä käyttöä määritellä muuttuja ja kertoa, mikä muuttujan tyyppi on. Muuttujan tyyppi määrää, millaisen arvon muuttujalle voi antaa. Python-ohjelmissa asia ei ole näin, vaan muuttuja otetaan käyttöön ilman määrittelyä. Siitä huolimatta muuttujalle sijoitettavalla arvolla on jokin tyyppi, joka määrää esimerkiksi sen, millaisia operaatiota muuttujalle voidaan suorittaa. Kaksi kokonaislukua voidaan jakaa keskenään, mutta kahta merkkijonoa ei.
Seuraavaksi esitellään yleisimmät yksinkertaisissa ohjelmissa esiintyvät tyypit.
Merkkijonoja (englannniksi string) käytetään käsittelemään erilaisia tekstejä, esimerkiksi nimiä. Merkkijonoille ei voi suorittaa aritmeettisia laskutoimituksia, mutta merkkijonosta voi esimerkiksi selvittää sen pituuden ja kaksi merkkijonoa voi liittää peräkkäin yhteen. Merkkijonoille mahdollisista operaatioista kerrotaan enemmän kierroksella 6. Merkkijonon tyyppi Pythonissa on str.
Kokonaisluvut ovat lukuja, joissa ei ole desimaalipistettä. Niiden arvon tyyppi on Pythonissa int. Jos lukuarvossa on desimaalipiste, sen tyyppi ei ole int, vaan float. Tätä tyyppiä käytetään desimaalilukujen arvojen tallentamiseen. On kuitenkin huomattava, että float-arvot eivät ole reaalilukuja matemaattisessa mielessä. Arvon tallentamiseen käytettävissä oleva muistitila asettaa rajat sille, kuinka tarkasti desimaalilukuja voidaan esittää ja mikä on suurin tai pienin mahdollinen desimaaliluku. Käytännössä tämä voi johtaa yllättäviin pyöristysvirheisiin ohjelman toiminnassa. Jos esimerkiksi lasketaan yhteen hyvin suuri ja hyvin pieni positiivinen desimaaliluku, ei pienempi luku vaikuta välttämättä lopputulokseen lainkaan, koska summan tarkkuus ei riitä kattamaan pienemmän luvun vaikutusta.
Desimaaliluku käsitetään float
-tyyppiseksi, vaikka sen desimaaliosa
olisikin 0. Näin esimerkiksi arvon 5 tyyppi on Python-tulkin mielestä
int
, mutta arvon 5.0 tyyppi on float
. Tällä on merkitystä, sillä
int
- ja float
-tyyppiset arvot tallennetaan tietokoneen muistissa
erilaisissa muodoissa ja myös jotkin operaatiot toimivat eri lailla
kokonais- ja desimaaliluvuille.
Lisäksi Python-kielessä on tyyppi bool, jota käytetään totuusarvojen
esittämiseen. Arvona on voi tällöin olla joko True
(tosi) tai
False
(epätosi).