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 null
i. 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
None
väärtused on tegelikult samaväärsed, mis tagab seda, et ekvivalentsuse kontrollNone
-de vahel saab teha niiis
kui ka==
operaatoriga. Kuid eelistatud onis
.