Številska podatkovna tipa

Zaženimo interaktivni tolmač in izvedimo ta stavka:

>>> a = 10 // 2
>>> b = 10 / 2

Ker je število 10 deljivo s številom 2, bi moral biti rezultat obakrat enak 5, kajne?

>>> a
5
>>> b
5.0

Hm, zakaj python števila 5.0 ne zapiše enostavno kot 5? Mar ni to dvoje enako? Odgovor je: da in ne. Da, matematično sta števili enaki. Sta pa tudi različnih tipov. Število 5 je celoštevilskega tipa, število 5.0 pa realnoštevilskega. Python ločuje med celimi in realnimi števili. Realna števila vedno zapisuje z decimalno piko, tudi če je decimalni del enak 0.

Če v izrazu nastopa vsaj eno realno število ali pa realnoštevilsko deljenje, bo rezultat realno število, v nasprotnem pa celo:

>>> 3 + 5.0 + 7
15.0
>>> 3 + 10 // 2
8
>>> 3 + 10 / 2
8.0

Realno število je možno pretvoriti v celo in obratno. Prvo pretvorbo izvršimo z operatorjem int, drugo pa z operatorjem float.

>>> int(3.0)
3
>>> int(3.9)
3
>>> int(-3.9)
-3
>>> float(-6)
-6.0

Operator int pretvori realno število v celo enostavno tako, da odreže decimalni del.

Preizkusi vse ukaze v interaktivnem tolmaču: