Oprava: Chyba odsadenia Python



Vyskúšajte Náš Nástroj Na Odstránenie Problémov

Python je rozvíjajúci sa programovací jazyk, ktorý bol prvýkrát uvedený na trh v roku 1991. Jazyk je známy svojou rozsiahlou komplexnou knižnicou a podporuje niekoľko programovacích paradigiem, ako sú funkčné, imperatívne, procedurálne a objektové.



Chyba odsadenia Python pri kódovaní

Chyba odsadenia v Pythone



Chyba odsadenia: Očakával sa odsadený blok „Vyskytuje sa pre všetky druhy používateľov; či už sú nováčikmi alebo skúsenými. Pretože Python usporiada všetok svoj kód do správnych medzier, ak máte zlé odsadenie, kód sa nezkompiluje a vráti sa vám chybové hlásenie.



Podľa dohovorov, ktoré sa dodržiavajú v dokumente PEP8, by mali byť podľa potreby štyri biele medzery. Pre každého programátora je ideálne použiť správne odsadenie, aby sa zlepšila čitateľnosť kódu.

Čo spôsobuje chybu odsadenia v Pythone?

Ako už bolo spomenuté vyššie, k tejto chybe primárne dochádza, pretože v kóde sú chyby medzery alebo tabulátora. Pretože Python používa procedurálny jazyk, môže sa vám táto chyba vyskytnúť, ak ste tabulátory / medzery neumiestnili správne. Program môže bežať správne, ale ak tlmočník zistí túto chybu, chybové hlásenie sa objaví v strede. Niektoré z príčin chyby sú:

  • Používate aj medzery, aj karty vo vašom kóde. Ak sa obidve používajú zameniteľne, tlmočník nebude schopný určiť, ktorá položka sa má použiť.
  • Vložili ste nejaké odsadenie zle . Ak sa nedodržia postupy odsadenia, bude sa nevyhnutne vyskytnúť táto chyba.
  • Zabudli ste odsadiť zložené výroky ako napríklad „ak“, „pre“, „zatiaľ“ atď.
  • Zabudli ste odsadiť používateľom definované funkcie alebo triedy .

Riešenie 1: Kontrola chybných medzier / tabulátorov

Neexistuje okamžitá oprava tohto problému. Pretože je váš kód, musíte prejsť každým riadkom a zistiť, kde ste urobili chybu. Existuje niekoľko blokov v kóde vzhľadom na štruktúru. Ak existuje vyhlásenie „Ak“, musí byť za kódom, ktorý za ním nasleduje, odsadenie.



Bloková štruktúra vizualizujúca odsadenie v Pythone

Bloková štruktúra vizualizujúca odsadenie

Skontrolujte diagram vyššie. Uvidíte, že odsadenie pre konkrétny blok zostáva v celom kóde rovnaké, aj keď je v strede vložený nový blok. Uistite sa, že je vaše odsadenie konzistentné. Ak používate medzery, vždy používajte medzery a ak používate karty, vždy používajte karty. Ich zmiešanie spôsobí problémy.

Príklad odsadenia v Pythone

Príklad odsadenia

Správne odsadenie je uvedené v príklade vyššie. Pre začiatočníkov si pozrite slučku „pre“. Všetko vo vnútri slučka „pre“ musí byť odsadená. Vo vnútri slučky „pre“ máme vyhlásenie „ak“. Vo vyhlásení „ak“ musí byť všetko ďalej odsadený.

Môžete ľahko skontrolovať, kde došlo k chybe odsadenia, a to tak, že skontrolujete protokol chýb a uvidíte riadok, z ktorého chyba pochádza.

Riešenie 2: Povolenie symbolov tabulátora / medzery v editore

Ak máte problém s odsadením kódu pomocou „hádania“, ako to robia všetci programátori, môžete vo svojom IDE alebo editore kódu povoliť symboly tabulátora / medzery. Táto možnosť umožní vo vašom kóde malé „bodky“, kde každá bodka predstavuje medzeru alebo kartu. Môžete to použiť na dôkladnejšie odsadenie kódu a na zaistenie, že tam nie je žiadne ďalšie odsadenie alebo niektoré chýbajú.

V tomto príklade si vezmeme program Poznámkový blok ++ a ukážeme si, ako môžete povoliť symboly. Ak na úpravu kódu používate iný softvér, môžete povoliť špecifické nastavenie.

  1. Stlačte Zobraziť> Zobraziť symbol> Zobraziť medzery a TAB Povolenie medzier a tabulátora v Pythone

    Povolenie medzery a tabulátora - Poznámkový blok ++

  1. Teraz je táto možnosť povolená. Môžete tiež povoliť Sprievodca zarážkou takže sa vám veci uľahčujú.
Ukážkový kód so správnym odsadením v Pythone

Ukážkový kód so správnym odsadením

Skontrolujte príklad vyššie. Pozrite si odsadenie implementované po každej triede. Každý priestor je reprezentovaný jednou bodkou. Po vykonaní zmien v nesprávnom odsadení kódu ho znova spustite a skontrolujte, či sa tým problém vyrieši.

Značky chyba odsadenia pytón 2 minúty prečítané