Ako programuješ v Python, možno si už počul o špeciálnych hodnotách, ktoré majú určité významy. Jednou z najdôležitejších a zároveň najzaujímavejších hodnôt v Pythone je None. Táto hodnota reprezentuje absenciu hodnoty alebo „void“ v programovaní. Na rozdiel od prázdneho reťazca alebo nuly je None jedinečný zástupca, ktorý zohráva úlohu v mnohých kontextoch, najmä vo funkciách. Táto príručka ti priblíži rôzne aspekty None a ukáže ti, ako túto hodnotu efektívne využiť vo svojich programoch.
Najdôležitejšie poznatky
- Špeciálna hodnota None znamená „žiadna hodnota“ a má osobitný význam v Pythone.
- None sa líši od iných prázdnych hodnôt, ako sú prázdne reťazce alebo prázdne množiny.
- Práca s None vo funkciách si vyžaduje porozumenie tomu, ako s tým Python pracuje.
- Podmienky ako if môžu byť použité na kontrolu hodnoty premenných, ktoré obsahujú None.
Porozumenie hodnote None
Najprv si objasnime, čo None naozaj znamená a ako sa líši od iných hodnôt. V Pythone existujú rôzne hodnoty, ktoré sú považované za „falošné“ alebo prázdne, medzi ktoré patrí okrem iného: prázdne reťazce, prázdne zoznamy alebo prázdne množiny. Tieto sú pri logických porovnaniach interpretované ako False. None je však špecifický typ, ktorý naznačuje, že žiadna hodnota nie je prítomná.

Toto rozlíšenie je obzvlášť dôležité, keď pracuješ s funkciami. Ak funkcia nemá návratovú hodnotu, predvolene vráti None. To naznačuje, že neexistuje žiadna hodnota, ktorá by bola odovzdaná.
Práca s funkciami a None
Predstav si, že definuješ funkciu, ktorá jednoducho vypíše meno, avšak nemá vrátiť žiadnu hodnotu. Môžeš to urobiť tak, že napíšeš funkciu bez return príkazu.
Ale ak sa pokúsiš priradiť výsledok vykonania funkcie premennej, zistíš, že dostaneš varovanie. V vývojovom nástroji ako PyCharm dostaneš správu, že funkcia nevracia hodnotu.

Pozri sa na nasledujúci kód:
Ako teraz zavoláš funkciu, môžeš výsledok uložiť do premennej.

Ale čo sa stane, ak sa pokúsiš uložiť výsledok do premennej a následne túto premennú vypísať? Výsledok bude None, pretože funkcia nemá návratovú hodnotu. To nás vracia k význame None – ukazuje to, že funkcia „nevracia nič“.
Podmienkové príkazy s None
Dôležitý aspekt None je, že môžeš veľmi jednoducho skontrolovať, či je premenná nastavená na None. Na to môžeš použiť if podmienku. Ak je teda result nastavené na None, môžeš použiť nasledovný logický príkaz:

V prvom prípade neuvidíš správu „Result je true“, pretože result je naozaj nastavené na None. V else podmienke môžeš vypísať správu „Result nie je true“.

Ďalším príkladom by bolo, ak by si chcel výslovne skontrolovať, či má premenná hodnotu None. Na to môžeš použiť porovnávací operátor is:

Toto špecifické porovnanie ti pomôže lepšie pochopiť, či ide skutočne o None, na rozdiel od prázdneho reťazca alebo iných falošných hodnôt.
Relevancia None
Prečo je dôležité používať hodnotu None vo svojich programoch? Jasné rozlíšenie medzi „žiadnou hodnotou“ a „bezcennou“ ti môže pomôcť presnejšie zformulovať tvoju logiku. Ak použiješ prázdny reťazec ako predvolenú hodnotu, môže to v určitých kontextoch viesť k zmätku. None je jasne rozpoznateľné a dá sa jednoducho používať v logických výrazoch.
Zhrnutie – Špeciálna hodnota None v Pythone
None zohráva centrálnu úlohu v programovaní v Pythone, pretože ti umožňuje jasne a presne znázorniť stav premenných. Pochopením, kedy a ako sa None používa, môžeš efektívnejšie zostavovať svoje funkcie a vyhýbať sa logickým chybám. Rozdiel medzi neexistujúcou hodnotou a prázdnou hodnotou je zásadný a zlepšuje presnosť tvojho kódu.
Často kladené otázky
Čo znamená špeciálna hodnota None v Pythone?None predstavuje absenciu hodnoty a je to špeciálny zástupca.
Aký je rozdiel medzi None a prázdnym reťazcom?None je typ, ktorý naznačuje, že neexistuje žiadna hodnota, zatiaľ čo prázdny reťazec je platný existujúci reťazec, ktorý neobsahuje žiadne znaky.
Môžem použiť None v podmienkach?Áno, môžeš použiť None v podmienkach na zistenie, či premenná nemá hodnotu.
Kako vrátiť None z funkcie?Funkcia bez návratového príkazu predvolene vracia None.
Kako preverím, či je premenná None?Môžeš použiť if variable is None: na kontrolu, či premenná má hodnotu None.