Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
< eelmine | 1. nädala sisukord | järgmine > |
1.3 Andmetüübid
Eelmises osas oli meil programm
arv = 1 if arv > 0: print("positiivne") else: print("mittepositiivne")
Selles on näha mitut tüüpi andmeid. Paistavad arvud 1
ja 0
ning tekstilised suurused "positiivne"
ja "mittepositiivne"
. Pythonis (nagu ka teistes programmeerimiskeeltes) ongi võimalik kasutada erinevaid andmetüüpe. Meie jaoks on esialgu olulised järgmised Pythoni andmetüübid:
- Täisarvud (näiteks
10
,-4
,0
); - Ujukomaarvud (näiteks
2.5
,3.14
,-7.23
,2.0
); - Sõne / tekst (näiteks
"kass"
(või'kass'
),"koer ja hobune"
(või'koer ja hobune'
)); - Tõeväärtused (
True
võiFalse
).
Täisarvude kasutamine Pythonis on ehk kõige sarnasem (kooli)matemaatikale.
Oma tüüp on koma sisaldavatele arvudele, selliseid arve nimetatakse ujukomaarvudeks. Koma rollis kasutatakse Pythonis punkti (näiteks 3,2 kirjutatakse Pythonis 3.2). Tekstide jaoks on sõnetüüp, mille tunnuseks on jutumärgid või ülakomad. Sõne ingliskeelne vaste on string (lühendatult ka str). Tõeväärtuste tüübis on vaid kaks võimalikku väärtust - True
(tõene) ja False
(väär).
Konkreetse väärtuse tüübi saab teada käsku type()
kasutades. Täisarvu tüüpi märgitakse Pythonis int
, ujukomaarvu tüüpi float
, sõne tüüpi str
ja tõeväärtuse tüüpi bool
.
Proovige näiteks:
print(type(4)) print(type(4.5)) print(type("Maria")) print(type(True))
Ülesanne
Ülesanne
Tüüpidega samanimeliste funktsioonide abil saame leida konkreetse väärtuse teist tüüpi vaste. Vahest on siin tulemus selgesti ettearvatav, vahel aga võib see suhteliselt ootamatu tunduda. Nii on näiteks int("1")
väärtuseks täisarv 1
, sest sõnele "1"
on just täisarvudest 1
loomulik vaste. Samuti vastupidi - str(1)
väärtuseks on sõne "1"
. Kontrollige ka, mida Python ise nende andmete tüüpidest arvab:
print(type(str(1))) print(type(int("1")))
Mõnedel juhtudel pole tüübiteisenduse funktsiooni väärtuse ennustamine nii lihtne. Proovige näiteks järgmisi näiteid.
print(bool(7)) print(bool(0)) print(float(True)) print(int(1.7))
Vaatame viimast rida, mis andis int(1.7)
väärtuseks 1
. Nagu näeme ei ole tegemist ümardamisega, kuna ümardamisreeglite järgi peaks väärtus olema 2
. Ümardamiseks on Pythonis eraldi funktsioon round
. Näiteks round(1.7)
on tõesti 2
.
Tuleme teiste näidete juurde tagasi hiljem, kui vastavaid tüüpe põhjalikumalt käsitleme.
Erinevat andmetüüpi väärtusi on vaja erinevates olukordades, nendega arvutused toimuvad erinevalt. Erinevate tüüpidega saab teha erinevaid tehteid. Ka näiliselt sama tehtemärgiga võivad erinevad tüübid erinevalt käituda. Oluline on ka see, et erinevat tüüpi väärtusi kujutatakse arvuti mälus erinevalt - ka ruumi võtavad nad mälus erinevalt.
< eelmine | 1. nädala sisukord | järgmine > |