Odsadenie je dôležitou vlastnosťou čitateľného a udržiavateľného kódu, ale len málo jazykov ho presadzuje. Python je jedným z mála.

Ak Python zistí, že váš kód je odsadený nesprávne, pri spustení kódu sa vám zobrazí správa „IndentationError“. Ako to však napraviť a ako tomu zabrániť v budúcnosti?

Prečo sa vám v Pythone zobrazuje chyba IndentationError?

Chyba „IndentationError: očakávaný odsadený blok“ je niečo, čo pravdepodobne uvidíte, keď prvýkrát začnete používať Python, najmä ak ste prišli z iného programovacieho jazyka.

The špecifiká pravidiel odsadzovania Pythonu sú zložité, ale obmedzujú sa na jednu vec: odsadenie kódu v blokoch. To platí pre funkcie, klauzuly if atď. Tu je príklad nesprávne naformátovaného kódu Python:

fname = "Gaurav"
meno = "Siyal"

if fname == "Gaurav" a lname == "Siyal":
vytlačiť ("Ty si Gaurav")
inak:
vytlačiť ("Si niekto iný")

Keď sa pokúsite spustiť vyššie uvedený kód, dostanete správu ako je táto:

 Súbor "tmp.py", riadok 5
vytlačiť ("Ty si Gaurav")
^
IndentationError: očakáva sa odsadený blok
instagram viewer

Namiesto toho by ste mali pridať buď tabulátor alebo sériu medzier na začiatok dvoch riadkov, ktoré predstavujú bloky:

fname = "Gaurav"
meno = "Siyal"

if fname == "Gaurav" a lname == "Siyal":
vytlačiť ("Ty si Gaurav")
inak:
vytlačiť ("Si niekto iný")

Ak odsadíte medzery, môžete skutočne použiť akékoľvek číslo, ktoré sa vám páči, pokiaľ budete konzistentní a jednoznační. Väčšina programátorov používa dve, štyri alebo osem medzier.

Bežné prípady správneho odsadenia

Tu je niekoľko príkladov, na ktoré sa môžete odvolať, aby ste sa uistili, že odsadzujete správne.

Ak vyhlásenia

Odsadenie bloku, ktorý nasleduje po a ak vyhlásenie:

if my_name == "Gaurav":
print("Volám sa Gaurav")
vrátiť Pravda

Funkcie

Telo funkcie je blok. Mali by ste odsadiť celý tento blok:

def magic_number():
výsledok = 42
vrátiť výsledok

vytlačiť magic_number()

Pre slučky

Rovnako ako v prípade príkazu if, telo cyklu for by malo byť odsadené o jednu úroveň viac ako riadok začínajúci znakom pre kľúčové slovo:

pre i v rozsahu (10):
tlačiť (i)

Uistite sa, že váš editor má správne zarážky

Väčšina moderných textových editorov podporuje automatické odsadenie kódu. Ak váš editor určí, že riadok kódu by mal byť odsadený, automaticky pridá tabulátory alebo medzery.

In Spyder, možnosti odsadenia sú dostupné pod Nástroje > Predvoľby > Zdrojový kód:

Ak používate vim, môžete upravte svoju konfiguráciu a použiť autoindent a súvisiace možnosti konfigurácie odsadenia. Tu je napríklad bežné nastavenie:

nastaviť automatické odsadenie
nastaviť rozbalovaciu kartu
nastaviť tabstop=4
nastavte softtabstop=4
nastavte šírku posunu=4

Tým sa automaticky odsadí pomocou štyroch medzier.

Žiadny editor však nedokáže urobiť automatické odsadenie nepriestrelné. Stále budete musieť venovať pozornosť odsadzovaniu, pretože niektoré prípady sú nejednoznačné:

V tomto príklade finále vrátiť príkaz je odsadený jednu úroveň od podpisu funkcie na prvom riadku. Ak však umiestnite kurzor na koniec predposledného riadku a stlačíte Zadajte, môže sa stať jedna z dvoch vecí. Váš editor môže umiestniť kurzor:

  1. Dve úrovne odsadenia, zarovnané s "res =..."
  2. Jedna úroveň odsadenia, zarovnaná s "ostatné:"

Váš editor nedokáže rozlíšiť medzi týmito dvoma prípadmi: možno budete chcieť pridať ďalší kód do bloku if/else, alebo nie.

Spracovanie chyby „Očakávaný odsadený blok“ Pythonu

Chyby sú v Pythone každodenným javom, rovnako ako v akomkoľvek inom programovacom jazyku. Prísne pravidlá Pythonu o odsadzovaní môžu pridať nový druh chýb, o ktorých treba premýšľať, ale sú užitočné. Správne odsadený kód je čitateľnejší a konzistentnejší medzi tímami.

Chyba v odsadení nie je jediná, s ktorou sa budete musieť vysporiadať. Pomáha poznať bežné chyby Pythonu, aby ste vedeli, ako ich ladiť a čo robiť, aby ste ich opravili.

Čo znamená chyba Python „Uviesť index mimo rozsah“?

Prečítajte si ďalej

zdieľamTweetujtezdieľamEmail

Súvisiace témy

  • Programovanie
  • Python

O autorovi

Gaurav Siyal (64 publikovaných článkov)

Gaurav Siyal má dvojročné skúsenosti s písaním písania pre sériu digitálnych marketingových firiem a dokumentov životného cyklu softvéru.

Viac od Gaurava Siyala

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber