Eroare de indentare în Python: cauze, cum se rezolvă, beneficii

Publicat: 2021-05-26

Ca limbaj de programare interpretat, de nivel înalt și cu scop general, Python câștigă din ce în ce mai multe premii ca fiind cele mai promițătoare, lider și emergente platforme din lume. Python nu este nimic fără filozofia sa ingenioasă de design.

O caracteristică cheie este accentul pus pe utilizarea notabilă a indentării semnificative pentru a îmbunătăți lizibilitatea codului. Ilustrația evidențiată mai jos subliniază pe scurt bastioanele filozofiei de design a lui Python ca douăzeci de aforisme, la care face aluzie Tim Peters, Pythoneer de lungă durată, care a devenit în cele din urmă unul dintre cei mai prolifici și mai tenace dezvoltatori de bază ai Python.

Cuprins

O scurtă introducere în Python

Înainte de a ne aprofunda în aspectele tehnice specifice care stau la baza erorii de indentare în Python, trebuie să ne familiarizăm cu elementele fundamentale ale lui Python și cu nevoia de indentare. Procedând astfel, nu numai că vă va ajuta să obțineți o mai bună apreciere a erorii în sine, dar vă va oferi o perspectivă asupra avantajelor pe care le câștigă programatorii alegând eficient să o rezolve.

Începutul Python ca limbaj de programare cu mai multe paradigme poate fi urmărit încă din anul 1991. De atunci, programatorii au adaptat continuu wireframe-ul de bază al Python pentru a se potrivi unei game de nevoi specifice utilizatorului, cum ar fi știința datelor și dezvoltarea web și mobilă.

Acum, știm cu toții că încercarea de a înțelege un scris de mână ilizibil este extrem de dificil și adesea enervant. În mod similar, un cod necitit și nestructurat este simplu și simplu, inacceptabil în lumea programării. Aici vine în salvarea programatorului noțiunea de PEP sau Python Enhancement Proposal. PEP pentru comunitatea Python este asemănător unui document Google partajat pentru populația generală.

Este un mandat descriptiv actualizat continuu, care ține comunitatea de programare Python informată cuprinzător cu privire la funcții și actualizări pentru a îmbunătăți lizibilitatea codului. De către Guido van Rossum, Barry Warsaw și Nick Coghlan în 2001, PEP 8 este denumit codul de stil al lui Python.

Ce este Indentarea?

Se știe în primul rând că Python este un limbaj procedural și, prin urmare, o indentare în Python este folosită pentru a segrega un cod singular în grupuri identificabile de declarații similare funcțional. Majoritatea limbajelor de programare, inclusiv C, C++ și JAVA, folosesc acolade „{}” pentru a defini un bloc de cod. Python marchează o abatere de la acest design și preferă utilizarea indentării.

Sintaxa indentării

Conform convențiilor subliniate de etica spațiilor albe PEP 8, fiecare nouă iterație (adică, un bloc de cod) ar trebui să înceapă cu o indentație, iar sfârșitul codului ar trebui să fie prima linie care nu este indentată. Practica obișnuită de a executa o indentație este de patru spații albe sau un singur caracter de filă, zonele fiind în mare parte preferate față de file.

După cum sa discutat mai devreme, spațiile albe de la începutul unei linii determină nivelul de indentare al liniei. Pentru a grupa instrucțiunile pentru un anumit bloc de cod, va trebui să creșteți nivelul indentării. În mod similar, pentru a închide gruparea, va trebui să reduceți nivelul indentării.

Checkout: 42 de subiecte și idei interesante ale proiectului Python

Cauzele erorii de indentare în Python

„Eroare de indentare: Se aștepta un bloc indentat” nu face discriminare între utilizatori. Indiferent dacă sunteți un începător în programarea Python sau un dezvoltator de software cu experiență, acest lucru se va întâmpla la un moment dat. În Python, din moment ce tot codul pe care îl tastați este aranjat prin spații albe corecte, dacă în orice moment al codului, aveți o indentare incorectă, codul general nu este rulat, iar interpretul va returna o funcție de eroare. Pentru a ști exact la ce să fii atent, următoarele enumeră câteva dintre cauzele comune ale unei erori de indentare în Python:

1. Utilizarea simultană a filelor și a spațiului în timpul codificării. Se poate argumenta că, în teorie, atât filele, cât și spațiile servesc aceluiași scop, dar să luăm în considerare acest lucru din perspectiva interpretului. Dacă spațiile albe și filele sunt utilizate în mod inconsecvent și interschimbabil, se creează ambiguitate. Acest lucru va duce la confuzia interpretului între ce modificare să folosească și, în cele din urmă, va returna o eroare de indentare în Python.

2. Ați plasat neintenționat o indentație în locul greșit sau o absență de file sau spații albe între liniile de cod. Deoarece Python aderă la liniile directoare stricte pentru aranjarea codurilor scrise, o indentare în locul greșit va returna inevitabil o eroare. De exemplu, prima linie de Python nu ar trebui să fie indentată.

3. Ocazional, în timp ce terminați un program întârziat, excepțional de lung, s-ar putea să pierdeți, fără să știți, funcții de indentare a instrucțiunilor compuse, cum ar fi for, while și if. Acest lucru va duce din nou la o eroare de indentare. Aceasta este cea mai elementară nevoie de indentare atunci când se folosește Python și trebuie practicată riguros pentru a stăpâni.

4. Dacă ați uitat să utilizați indentarea atunci când lucrați cu funcții definite de utilizator sau clase diferite, este posibil să apară o eroare.

Cum se rezolvă o eroare de indentare în Python?

1. Verificați dacă există spații albe sau file greșite. Din păcate, nu există o remediere rapidă a unei erori de indentare. Întrucât codul este al tău, rămâne faptul că va trebui să evaluezi fiecare linie pentru a identifica cazurile eronate în mod individual. Cu toate acestea, deoarece liniile de cod sunt aranjate în blocuri, procesul este relativ simplu. De exemplu, dacă ați folosit instrucțiunea „dacă” într-o anumită secvență, puteți verifica dacă v-ați amintit să indentați următorul rând.

2. Asigurați-vă că indentarea pentru un anumit bloc rămâne aceeași pe tot parcursul codului, chiar dacă în mijloc este introdus un nou bloc. Verificați dacă există inconsecvențe în indentare.

Dacă soluțiile manuale de mai sus nu au funcționat pentru dvs. și vă este greu să vă dați seama unde ați ratat indentarea, atunci urmați acești pași:

3. Accesați setările editorului de cod și activați opțiunea care încearcă să afișeze file și spații albe. Cu această caracteristică activată, veți vedea puncte mici unice, unde fiecare punct reprezintă o filă/un spațiu alb. Dacă observați că lipsește o picătură acolo unde nu ar trebui să fie, atunci acea linie probabil are o eroare de indentare.

4. Utilizați interpretul Python încorporat Ghidul de indentare. Poate că această metodă este foarte ineficientă pentru mai multe linii de cod. Cu toate acestea, deoarece vă conduce prin fiecare linie și vă arată exact unde se află eroarea dvs., este cea mai sigură modalitate de a găsi și remedia toate erorile.

Citește și: Top 12 aplicații Python fascinante în lumea reală

Beneficiile indentării

Lizibilitatea și consistența sunt esențiale pentru orice cod bun. În urma spațiului alb PEP 8, etica ar trebui să fie astfel nenegociabilă. Acesta confirmă în mod logic codul dvs., contribuind astfel la o experiență de codare mai plăcută. În plus, dacă urmați acest ghid stilistic în care lizibilitatea este de facto, persoanele care vă sunt necunoscute, dar sunt interesate de munca dvs., vor înțelege codul cu ușurință.

Dezavantajele indentării

  • Dacă codul este mare și indentarea este coruptă, poate fi plictisitor să remediați erorile de indentare. Acest lucru este de obicei atunci când un cod este copiat dintr-o sursă online, un document Word sau un fișier PDF.
  • Limbajele de programare populare folosesc de obicei acolade pentru indentare. Pentru programatorii care abia încep să folosească Python, adaptarea la ideea de a folosi spații albe pentru indentare poate fi dificilă.

Rezumând

Tot ceea ce se află între tine și un cod bine scris este o indentație și tot ceea ce se află între tine, codul tău bine scris și execuția lui fără întreruperi este o eroare de indentare. Acum, toți oamenii fac greșeli. Toți programatorii sunt oameni. Prin urmare, toți programatorii fac greșeli. Dar o eroare de indentare poate fi ușor rezolvată. Tot ce trebuie să faci este să respiri și să-ți iei spațiu.

Sper că veți învăța multe în timp ce lucrați la aceste proiecte Python. Dacă sunteți curios să învățați știința datelor pentru a fi în fața progreselor tehnologice rapide, consultați programul Executive PG în știința datelor de la upGrad și IIIT-B și perfecționați-vă pentru viitor.

Ce erori pot obține din cauza indentării în Python?

Python determină când încep și se opresc blocurile de cod uitându-se la spațiul de la începutul liniei. Este posibil să întâmpinați următoarele erori de indentare:
1. Indentare neașteptată - Această linie de cod are mai multe spații la început decât cea de dinainte, dar cea de dinaintea ei nu începe un subbloc. Într-un bloc, toate liniile de cod trebuie să înceapă cu același șir de spațiu alb.
2. Unindent nu corespunde cu niciunul dintre nivelurile exterioare de indentare - Această linie de cod conține mai puține spații la început decât cea anterioară, dar nici nu se potrivește cu niciun alt bloc.
3. Era de așteptat un bloc indentat - Această linie de cod începe cu același număr de spații ca și cea anterioară, totuși linia anterioară trebuia să înceapă un bloc (de exemplu, if/while/for declarație, definiția funcției).

Cum remediați filele și spațiile inconsecvente în indentarea Spyder?

Filele și spațiile sunt două caractere separate care apar pe ecran ca spațiu alb. Problema este că nu există un consens cu privire la cât de mare ar trebui să fie un caracter de filă, astfel încât unii editori îl afișează ca ocupând 8 spații, alții ca 4 spații, iar alții ca 2 și este, de asemenea, personalizabil.
Când codificați, dar o linie este indentată cu o tabulație și cealaltă cu spații, Python aruncă o eroare, în ciuda faptului că pare bine în editor (dar nu va arăta bine dacă dublezi lățimea unei tabulare; acum liniile de file vor fi indentate pe două niveluri).
Pentru a evita această problemă, accesați opțiunile editorului de text și activați funcția de conversie a tabulatorilor în spații , care înlocuiește caracterul tabulator cu n caractere spațiu, unde n este lățimea tabulatorului pe care o folosește editorul dvs.

Cum afișați indentări pe Spyder?

Selectați codul și apăsați Tab sau Shift + Tab pentru a-l indenta sau anula. Alte instrumente pentru modificarea codului pot fi găsite în secțiunea Editare.