Pythoni andmetüübid - None (Nonetype)¶
Mis on andmetüüp None?¶
Pythonis on sisseehitatud, nagu ka paljudes teistes
programmeerimiskeeltes, mitu erinevat andmetüüpi. Näiteks
integer/täisarv (int), string/sõne (str), boolean/tõeväärtus
(bool). None on üks nendest sisseehitatud tüüpidest. None
tüüp näitab väärtuse puudumist või nn nulli. None tüüp ei ole
sama, mis arv 0, tõeväärtus False või tühi sõne "". None
on täiesti oma tüüp (NoneType) ja None saab olla ainult
None.
>>> type(None)
<class 'NoneType'>
>>> x = None
>>>
>>> if x:
... print("Do you think None is True?")
... elif x is False:
... print ("Do you think None is False?")
... else:
... print("None is not True, or False, None is just None...")
...
None is not True, or False, None is just None...
Milleks kasutatakse andmetüüpi None?¶
Nagu eelnevalt oli mainitud None näitab väärtuse puudumist (paljudes
teistes keeltes vaste on väärtus null). Ehk seda andmetüüpi
kasutatakse siis, kui tahetakse kindlalt näidata, et väärtus puudub.
>>> x = "hello there"
>>> print(x)
hello there
>>> x = None
>>> print(x)
None
Näites ülevalt on näha, et algselt on muutuja x väärtus sõne, kuid
hiljem on selle väärtus None. See tagab seda, et kui me kontrollime
muutuja x väärtuse olemasolu, siis saame kindlalt öelda, et see
puudub (on None), sest kui me paneks muutuja x väärtuse tühja
sõne "", siis kui me teeks if not x annaks see meile väärtuse
True, mis meile ei sobi tihtipeale.
re.search või dict.get
tagastavad None kui regex ei sobi (re.search puhul) või kui
võtit pole dict-is (dict.get puhul).None. - None
väärtus ei saa liita sõnedele ja teistele objektidele.>>> bar = "something"
>>> foo = None
>>> print foo + bar
TypeError: cannot concatenate 'str' and 'NoneType' objects
Kõik
Noneväärtused on tegelikult samaväärsed, mis tagab seda, et ekvivalentsuse kontrollNone-de vahel saab teha niiiskui ka==operaatoriga. Kuid eelistatud onis.