Uvlačenje je vitalna značajka čitljivog koda koji se održava, ali ga nekoliko jezika provodi. Python je jedan od tih rijetkih.

Ako Python utvrdi da je vaš kod pogrešno uvučen, vidjet ćete poruku "IndentationError" kada pokrenete svoj kôd. Ali kako to riješiti i kako spriječiti u budućnosti?

Zašto dobivate IndentationError u Pythonu?

Pogreška "IndentationError: očekivao se uvučeni blok" nešto je što ćete vjerojatno vidjeti kada prvi put počnete koristiti Python, osobito ako dolazite iz drugog programskog jezika.

The specifičnosti Pythonovih pravila uvlačenja složeni su, ali se svode na jednu stvar: uvlačenje koda u blokove. Ovo vrijedi za funkcije, if klauzule i tako dalje. Evo primjera pogrešno formatiranog Python koda:

fname = "Gaurav"
lname = "Siyal"

ako je fname == "Gaurav" i lname == "Siyal":
print("Ti si Gaurav")
drugo:
print("Ti si netko drugi")

Kada pokušate pokrenuti gornji kod, dobit ćete poruku poput ove:

 Datoteka "tmp.py", redak 5
print("Ti si Gaurav")
^
IndentationError: očekivao se uvučeni blok
instagram viewer

Umjesto toga, trebali biste dodati karticu ili niz razmaka na početak dva reda koji predstavljaju blokove:

fname = "Gaurav"
lname = "Siyal"

ako je fname == "Gaurav" i lname == "Siyal":
print("Ti si Gaurav")
drugo:
print("Ti si netko drugi")

Ako uvlačite razmake, zapravo možete koristiti bilo koji broj koji želite, pod uvjetom da ste dosljedni i nedvosmisleni. Većina programera koristi dva, četiri ili osam razmaka.

Uobičajeni slučajevi ispravnog uvlačenja

Evo nekoliko primjera na koje se možete pozvati kako biste bili sigurni da ste ispravno uvučeni.

Ako izjave

Uvucite blok koji slijedi nakon a ako izjava:

ako je moje_name == "Gaurav":
print("Zovem se Gaurav")
vrati Istina

Funkcije

Tijelo funkcije je blok. Trebali biste uvući cijeli ovaj blok:

def magični_broj():
rezultat = 42
vratiti rezultat

ispiši magični_broj()

Za petlje

Kao i kod if naredbe, tijelo for petlje treba biti uvučeno jednu razinu više od retka koji počinje s za ključna riječ:

za i u rasponu (10):
ispis (i)

Provjerite je li vaš urednik ispravno uvučen

Većina modernih uređivača teksta podržava automatsko uvlačenje koda. Ako vaš uređivač utvrdi da redak koda treba biti uvučen, automatski će dodati kartice ili razmake.

U Spyder, opcije uvlačenja dostupne su pod Alati > Postavke > Izvorni kod:

Ako koristite vim, možete uredite svoju konfiguraciju i koristite autoindent i povezane opcije za konfiguriranje uvlačenja. Na primjer, evo uobičajenog podešavanja:

postaviti autoindent
postavite karticu proširenja
postaviti tabstop=4
postaviti softtabstop=4
postaviti shiftwidth=4

To će automatski uvući četiri razmaka.

Međutim, nijedan uređivač ne može učiniti automatsko udubljenje neprobojnim. I dalje ćete morati obratiti pažnju na uvlačenje jer su neki slučajevi dvosmisleni:

U ovom primjeru konačna povratak izraz je uvučen za jednu razinu od potpisa funkcije u prvom retku. Međutim, ako postavite pokazivač na kraj pretposljednjeg retka i pritisnite Unesi, može se dogoditi jedna od dvije stvari. Vaš uređivač može postaviti kursor:

  1. Dvije razine uvlake u, usklađene s "res =..."
  2. Jedna razina uvlake u, usklađena s "ostalo:"

Vaš urednik ne može razlikovati ova dva slučaja: možda ćete htjeti dodati još koda u blok if/else, a možda i ne.

Rukovanje Pythonovom pogreškom "Očekivao se uvučeni blok".

Pogreške su svakodnevna pojava u Pythonu, baš kao i u bilo kojem drugom programskom jeziku. Pythonova stroga pravila o uvlačenju mogu dodati novu vrstu pogreške o kojoj treba razmišljati, ali su korisna. Pravilno uvučen kod je čitljiviji i dosljedniji u svim timovima.

Pogreška uvlačenja nije jedina s kojom ćete se morati nositi. Pomaže poznavati uobičajene Python pogreške kako biste znali kako ih otkloniti i što učiniti da ih popravite.

Što znači pogreška Python "Indeks popisa izvan raspona"?

Pročitajte dalje

UdioCvrkutUdioE-mail

Povezane teme

  • Programiranje
  • Piton

O autoru

Gaurav Siyal (Objavljeno 64 članka)

Gaurav Siyal ima dvije godine iskustva pisanja, pisanja za niz tvrtki za digitalni marketing i dokumenata o životnom ciklusu softvera.

Više od Gaurava Siyala

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu