1. Sissejuhatus
Kui kirjutad programme Pythonis, on “nulli kontrollid” olulised, et kinnitada, et andmeid ei ole või käsitleda vigu. Pythoni pakub spetsiaalset väärtust, mis vastab teiste keelte “nullile”, None, ja seda kasutatakse erinevates olukordades.
See artikkel selgitab, kuidas teha “nulli kontrolle” ja kuidas neid tõhusalt kasutada Pythoni vaatenurgast. See on kirjutatud algajatele arusaadavalt ning eesmärgiga pakkuda sisu, mida saab reaalses arenduses rakendada, seega kasuta seda viitena.
2. Mis on “null” Pythonis?
Programmeerimiskeeltes on eriväärtus, mis tähistab andmete puudumist või kehtetut olekut. Näiteks JavaScript ja Java kasutavad “null”, PHP kasutab “NULL”, kuid Pythonis nimetatakse seda “None“.
Python’i None põhikontseptsioonid
Python’i None vastab teiste keelte “nullile” ja näitab, et andmeid ei ole või neid pole konkreetselt määratud. Pythonis käsitletakse kõiki andmeid objektidena ning None pole erand — see on erilise tüübi NoneType objekt.
Näiteks, määrates None muutujale allpool näidatud viisil, näitad, et andmeid pole määratud.
x = None
See teeb selgeks, et muutuja x väärtust pole määratud. 
3. None põhikasutus
Pythonis kasutatakse None-i paljudes olukordades, et selgelt näidata kindlat olekut. Siin tutvustame None-i põhikasutust.
None määramine muutujale
None-i määramine muutujale näitab, et see “ei sisalda väärtust” või on “määramata”. Seda kasutatakse andmete jaoks, mis pole veel otsustatud, või muutujate jaoks, mida soovid ajutiselt tühjaks jätta.
name = None
age = None
Funktsioonid, mis tagastavad None
Kui funktsioonis ei ole tagastatav väärtus eriti vajalik või soovid teatud tingimuste korral näidata “midagi ei tagastata”, on tavaline tagastada None. Näiteks allolevas funktsioonis võid tagastada None, kui tingimus ei ole täidetud.
def find_even_number(numbers):
for num in numbers:
if num % 2 == 0:
return num
return None
See funktsioon leiab ja tagastab paarisarvu, kuid kui ühtegi ei leita, tagastab see None, näidates, et sobivaid andmeid ei ole.
4. Kuidas tuvastada None
Pythonis on tavaline viis kontrollida, kas None on määratud, kasutada is operaatorit. Eriti on is operaator väga usaldusväärne None testimisel ja seda soovitab ametlik Pythoni stiilijuhend (PEP 8). == operaatorit saab samuti kasutada, kuid kuna see käitub teisiti, tuleb olla ettevaatlik. See jaotis selgitab iga testimismeetodi.
Kuidas kontrollida is operaatori abil
is operaator on Pythoni standardne viis kontrollida, kas muutuja on None. is kontrollib objekti identiteeti, seega sobib see None tuvastamiseks. Vaatame järgmist näidet.
x = None
if x is None:
print("x is None")
Selles koodis, kui muutuja x on None, prinditakse “x is None”. is operaatori kasutamine muudab koodi selgemaks ja loetavamaks, seega on soovitatav kasutada is-i just None testimisel.
Erinevused ja ettevaatusabinõud == operaatori kasutamisel
Pythonis saab None testimiseks kasutada ka == operaatorit, kuid == on mõeldud “väärtuse võrdsuse” võrdlemiseks. See töötab ka None testimisel, kuid võib mõnikord anda ootamatuid tulemusi, seega on parem kasutada is-i None testimisel.
x = None
if x == None: # Works, but not recommended
print("x is None")
Negatiivse juhtumi kontroll (is not)
Kui soovid kinnitada, et muutuja ei ole None, kasuta is not operaatorit. is not on mugav, et määrata, mida teha, kui muutuja ei ole None.
x = 5
if x is not None:
print("x is not None")
Selles näites, kui x ei ole None, prinditakse “x is not None”. is not operaatori selline kasutamine võimaldab selgelt testida olukordi, kus midagi ei ole None.
5. None ja teiste väärväärtuste erinevused
Pythoni keeles on mitmeid väärtusi, mis lisaks None‑le hinnatakse kui „väärväärtused“. Nende hulka kuuluvad tühi string '', arvväärtused 0, tühjad loendid [] jne. Kuid need väärtused erinevad None‑st. Siin süvendame oma arusaama None ja teiste väärväärtuste erinevustest.
None ja teiste väärväärtuste ülevaade
Peamised väärtused, mis Pythoni keeles hindavad kui väärväärtused, on:
None- tühi string
'' - arv
0 - tühi loend
[] - tühi sõnastik
{}
Kõik need hindavad False, kuid None, erinevalt neist, esindab väärtuse puudumist.
None ja tühja stringi '' erinevused
Tühi string '' näitab, et andmed on tühjad, säilitades samal ajal oma andmetüübi str. Teiselt poolt on None eriline objekt, millel pole tüüpi. Vaatame järgmist näidet.
text = ''
if text is None:
print("text is None")
elif text == '':
print("text is an empty string")
See kood eristab, kas text on tühi string või None, ja käsitleb iga juhtumi vastavalt.
Erinevused arvust 0 ja tühjast loendist []
Arv 0 ja tühi loend [] hindavad samuti False, kuid need näitavad, et on olemas numbriline või loendi väärtus, mille sisu on tühi. None‑l puudub tüüp, mis tähendab, et midagi pole määratud. Kinnitage see järgmisel näitel.
data = 0
if data is None:
print("data is None")
elif data == 0:
print("data is 0")
None ja teiste väärväärtuste erinevuste mõistmine võimaldab täpsemaid kontrolli.
6. None kasutamise praktilised näited
Siin selgitame mitmeid konkreetseid näiteid, kuidas tõhusalt kasutada None‑i Python’i programmides. None‑t kasutatakse laialdaselt vaikimisi argumentide, andmebaasist saadud andmete käitlemise, veahaldamise ja muu jaoks. Nende kasutusnäidete mõistmine parandab koodi hooldatavust ja loetavust.
None kasutamine funktsiooni vaikimisi argumendina
Määrates None‑i funktsiooni vaikimisi argumendiks, saab luua paindlikuma funktsioonidisaini. Näiteks, kui argumenti funktsioonile ei edastata, saab None‑i abil tuvastada selle ja määrata tingimustele vastavalt vaikimisi käitumise.
def greet(name=None):
if name is None:
print("Hello, Guest!")
else:
print(f"Hello, {name}!")
See funktsioon greet kuvab „Hello, Guest!“, kui argumenti name ei ole antud, ja kui see on antud, tervitab määratud nimega. Kasutades None‑i sellisel viisil, saab hõlpsasti luua funktsioone paindliku käitumisega.
None käsitlemine andmete toomisel andmebaasist
Andmebaasist andmete toomisel võib None‑i tagastada, kui andmeid ei eksisteeri. Näiteks SQL‑i NULL väärtusi käsitletakse sageli otse kui None‑i ning teete None‑i kontrolli, et määrata, kas andmed puuduvad.
user_data = get_user_data(user_id) # Function to retrieve user data
if user_data is None:
print("No user data found")
else:
print("Displaying user data")
Siin, kui funktsioon get_user_data ei tagasta kasutaja andmeid, tagastatakse None ja sellisel juhul kuvatakse „No user data found“. Selliste None‑i kontrollide tegemine muudab andmebaasi operatsioonid turvalisemaks ja usaldusväärsemaks.
None kasutamine veahalduses
None‑t kasutatakse ka veahalduses. Eriti olukordades, mis nõuavad erandite käsitlemist või veakontrolle, aitab tulemuse None‑iks olemise kindlaksmääramine hõlpsasti vigu tuvastada.
def divide(a, b):
if b == 0:
return None
return a / b
result = divide(10, 0)
if result is None:
print("Error: Division by zero occurred")
else:
print(f"Result: {result}")
Selles näites kontrollib funktsioon divide nulliga jagamist ja tagastab veateatel None. See võimaldab kutsujal kontrollida None‑i ja kuvada sobiva veateate.

7. Parimad tavad None kontrollimiseks
Kui kontrollida None-i Pythonis, õige meetodi kasutamine võib parandada koodi loetavust ja usaldusväärsust. Siin on parimad tavad None kontrollimiseks.
Soovitatav lähenemine None kontrollimiseks vastavalt PEP 8-le
PEP 8, Python’i ametlik stiilijuhend, soovitab None-i kontrollimiseks kasutada is operaatorit. See teeb kavandatud objekti identiteedi selgeks ja eristab None-i teistest väärväärtustest.
value = None
if value is None:
print("value is None")
is kasutamine None-i kontrollimiseks parandab loetavust ja selgitab kavatsust, mis aitab vältida vigu.
Koodinäited loetavuse ja hooldatavuse parandamiseks
Loetavuse ja hooldatavuse huvides on oluline kontrollida None-i lihtsa, arusaadava koodiga. Samuti, kui None on oodatud, on kasulik lisada kommentaare, mis selgitavad None-i eesmärki ja kavatsust.
# When no value is set, None is expected
data = fetch_data()
if data is None:
print("Could not retrieve data")
Sel viisil None-i tähenduse selgitamine kommentaaridega teeb tulevase koodi hooldamise lihtsamaks.
8. Kokkuvõte
Selles artiklis andsime üksikasjaliku selgituse None rolli ja kasutamise kohta, mis vastab Pythonis “null kontrollidele”. Mõistes None-i ja kasutades seda õigesti, saate parandada oma programmide turvalisust ja hooldatavust. Lisaks aitab None-i selge eristamine teistest “väärväärtustest” veelgi suurendada teie koodi usaldusväärsust. Allpool on artikli peamised võtmekohad:
None-i põhiline kontseptsioon ja roll Pythonis.- Kuidas tuvastada
None-i ja kuidas see erineb teistest “väärväärtustest”. None-i praktilised kasutused funktsioonide argumentides, andmebaasi operatsioonides ja veahalduses.- Parimad tavad
None-i kontrollimiseks.
Kasutage seda teavet viitena None-i rakendamiseks reaalses Python koodis ja kvaliteetsete programmide loomisel.




