Andmetüübid
Eelmine
Järgmine

Peatükk 3. Andmetüübid

Aritmeetiliste tehete juures nägime, kuidas tulemus olenes sellest, millist tüüpi andmetega tehet tehti. Sellist olukorda võib mujalgi ette tulla.

Olgu meil avaldised

1 + 1 = 2
ja
1 + 1 = 10
.

Kas teine avaldis on vale? Ei ole, kui meil on tegemist kahendsüsteemiga. Kui meil on avaldis

I + I = II
siis võime seda vaadelda kui liitmistehet rooma numbritega või kui kahe 'I'-tähe liitmist, nagu toimub tähtede liitmine ka avaldises
'A' + 'B' + 'B' + 'A' = 'ABBA'

Pythonis on kasutusel järgmised andmetüübid:

Käesoleva kursuse raames on meile olulised stringid, loendid, tavalised täisarvud, vähem ka kujutused ja failid.

Nagu eespool öeldud, võivad ühed ja samad tehted olenevalt andmete tüübist anda erinevaid tulemusi. Iga andmetüübi juures on toodud ka tabel nendega teostavatest tehetest koos oodatavate tulemuste seletusega.

Arvud

>>>2+2
4
>>> 
...2+2
4
>>>2+2 
4

Pythonis eristatakse järgmisi arvandmete tüüpe:

  • tavalised täisarvud (ingl. plain integers)
  • pikad täisarvud (ingl. long integers)
  • ujukumaarvud (ingl. floating point numbers)
  • kompleksarvud (ingl. complex numbers )
Tõeväärtuse andmeid (ingl. boolean) võib käsitleda täisarvude alatüübina. Tõeväärtusi True (tõene) ja False (väär) võib esitada ka kahendsüsteemi arvudena, vastavalt siis 1 ja 0.

Täisarvud on (vähemalt) 32-bitise esitustäpsusega (sõltub masinast), pikad täisarvud on piiramatu esitustäpsusega. Ujukomaarvude täpsus sõltub masinast, millel töötatakse.

Pikkadele täisarvudele lisatakse lõppu L. Ujukomaarvud sisaldavad kümnendkoha eraldajat (Pythonis on selleks punkt ".") või eksponendimärki ("e" ja kohtade arv).

Kui on vaja näidata, et on tegemist kaheksandsüsteemi arvuga, lisatakse sellele ette "0":

>>> a = 010
>>> a
8

Kui on vaja näidata, et on tegemist kuueteistkümendsüsteemi arvuga, lisatakse sellele ette "0x" või "0X":

>>> a = 0Xa4
>>> a
164
>>> b = 0xBc
>>> b
188

Tabel 3.1. Olulisemad tehted arvudega

Tehe Seletus Märkused
x + yx ja ysumma 
x - yx ja y vahe 
x * yx ja y korrutis 
x / yx ja y jagatis(1)
x // yx ja y jagatise täisosa 
x % yx / y jääk 
abs(x)x absoluuutväärtus  
int(x)x täisarvuna(2)
long(x)x pika täisarvuna(2)
float(x)x ujukomaarvuna 
x ** yx astmel y 

Märkus

  1. Kui jagatakse täisarve, on tulemuseks täisarv. Tulemus ümardatakse alati allapoole. 1/2 on 0, (-1)/2 on -1, 1/(-2) on -1 ja (-1)/(-2) on 0.

  2. Ujukomaarvude teisendamisel täisarvuks võib tulemus olla ümardatud. Funktsioonid floor() ja ceil() math moodulis annavad vähima ja suurima väärtuse.

Eelmine
Järgmine
Esileht