3 Andmetüübid

Eelmises peatükis oli meil järgnev programm:

arv = 1
if arv > 0:
    print("positiivne")
else:
    print("mittepositiivne")

Selles programmis on näha mitut tüüpi andmeid. Paistavad arvud 1 ja 0 ning tekstilised suurused "positiivne" ja "mittepositiivne". Pythonis (nagu ka teistes programmeerimiskeeltes) on 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õi False).

Täisarvude kasutamine Pythonis on sarnane (kooli)matemaatikale.

Eraldi tüüp on koma sisaldavatele (murd)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 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. Proovi näiteks:

print(type(4))
print(type(4.5))
print(type("Maria"))
print(type(True))

Enesekontroll (2 ülesannet)

Tüüpidega samanimeliste funktsioonide abil saame andmete tüüpi muuta. Sageli 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". Kontrolli ise, mida Python 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. Proovi 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.

Erinevat andmetüüpi väärtusi on vaja erinevates olukordades, sest nendega on võimalik sooritada erinevaid tegevusi. Ka näiliselt sama tegevus võib anda erinevaid andmetüüpe kasutades erinevaid tulemusi. Oluline on ka see, et erinevat tüüpi väärtusi hoitakse arvuti mälus erinevalt – ka ruumi võtavad nad mälus erinevalt.

Litsents

Icon for the Creative Commons Attribution 4.0 International License

Programmeerimine on loodud Eno Tõnisson, Tauno Palts, Merilin Säde, Kaarel Tõnisson jt poolt Creative Commons Attribution 4.0 International License litsentsi alusel, kui pole teisiti märgitud.

Jaga seda raamatut