Treppimine on loetava ja hooldatava koodi oluline funktsioon, kuid vähesed keeled rakendavad seda. Python on üks neist vähestest.

Kui Python tuvastab, et teie kood on valesti taandatud, näete koodi käivitamisel teadet "IndentationError". Kuid kuidas seda parandada ja kuidas seda tulevikus vältida?

Miks kuvatakse Pythonis taandetõrge?

Tõrget „IndentationError: eeldatav taandega plokk” näete tõenäoliselt Pythoni esmakordsel kasutamisel, eriti kui olete pärit teisest programmeerimiskeelest.

The Pythoni taandereeglite eripära on keerulised, kuid need taanduvad ühele asjale: koodi taandumine plokkides. See kehtib funktsioonide, if-klauslite jms kohta. Siin on näide valesti vormindatud Pythoni koodist:

fname = "Gaurav"
lname = "Siyal"

if fname == "Gaurav" ja lname == "Siyal":
print ("Sa oled Gaurav")
muu:
print ("Sa oled keegi teine")

Kui proovite ülaltoodud koodi käivitada, kuvatakse järgmine sõnum:

 Fail "tmp.py", rida 5
print ("Sa oled Gaurav")
^
IndentationError: oodatakse taandega plokki

Selle asemel peaksite kahe plokke tähistava rea ​​algusesse lisama vahekaardi või tühikute seeria:

fname = "Gaurav"
lname = "Siyal"

if fname == "Gaurav" ja lname == "Siyal":
print ("Sa oled Gaurav")
muu:
print ("Sa oled keegi teine")

Kui teete taande tühikutega, saate tegelikult kasutada mis tahes numbrit, mis teile meeldib, kui olete järjepidev ja ühemõtteline. Enamik programmeerijaid kasutab kahte, nelja või kaheksat tühikut.

Õige taande levinumad juhud

Siin on mõned näited, millele saate viidata, et saaksite veenduda, et teete taande õigesti.

Kui avaldused

Treppige plokile, mis järgneb anile kui avaldus:

if my_name == "Gaurav":
print("Minu nimi on Gaurav")
tagasi Tõsi

Funktsioonid

Funktsiooni keha on plokk. Peaksite kogu selle ploki taanduma:

def magic_number():
tulemus = 42
tagastada tulemus

print magic_number()

Loopsi jaoks

Nagu if-lause puhul, tuleks ka for-tsükli kehasse taanduda ühe taseme võrra kõrgemale kui reale, mis algab tähega jaoks märksõna:

i jaoks vahemikus (10):
printida (i)

Veenduge, et teie toimetaja taane oleks õigesti tehtud

Enamik kaasaegseid tekstiredaktoreid toetab automaatset koodi taandumist. Kui teie redaktor otsustab, et koodirida tuleks taandega lisada, lisab ta automaatselt tabeldusmärgid või tühikud.

sisse Spyder, taande valikud on saadaval all Tööriistad > Eelistused > Lähtekood:

Kui kasutate vimi, saate seda teha muuta oma konfiguratsiooni ja kasutage autoindent ja sellega seotud valikud taande konfigureerimiseks. Näiteks siin on tavaline seadistus:

automaatse taande määramine
määra laiendatav tabel
määra tabstop=4
määrake softtabstop=4
määra nihkelaius=4

See taandub automaatselt nelja tühikuga.

Ükski toimetaja ei saa aga automaatset taanet kuulikindlaks muuta. Peate siiski tähelepanu pöörama taandele, kuna mõned juhtumid on mitmetähenduslikud:

Selles näites finaal tagasi lause on taandatud ühe taseme võrra esimese rea funktsiooni allkirjast. Kui aga asetate kursori eelviimase rea lõppu ja vajutate Sisenema, võib juhtuda üks kahest asjast. Teie toimetaja võib kursori paigutada:

  1. Kaks taande taset sisse, joondatud "res =..."
  2. Üks taane, joondatud sõnaga "muu:"

Teie redaktor ei suuda neil kahel juhul vahet teha: võite soovida lisada plokki if/else rohkem koodi või mitte.

Pythoni tõrke „Oodatav taandega blokk” käsitlemine

Vead on Pythonis, nagu igas teises programmeerimiskeeles, igapäevane nähtus. Pythoni ranged taande reeglid võivad lisada uut tüüpi vea, millele mõelda, kuid need on kasulikud. Õige taandega kood on meeskonnas paremini loetav ja järjepidev.

Taandeviga pole ainus, millega peate tegelema. See aitab olla tuttav Pythoni tavaliste vigadega, et saaksite teada, kuidas neid siluda ja mida teha nende parandamiseks.

Mida tähendab Pythoni tõrge "Loendi indeks vahemikust väljas"?

Loe edasi

JagaSäutsJagaMeil

Seotud teemad

  • Programmeerimine
  • Python

Autori kohta

Gaurav Siyal (Avaldatud 64 artiklit)

Gaurav Siyal on kaheaastane kirjutamiskogemus, kirjutades mitmetele digitaalse turunduse ettevõtetele ja tarkvara elutsükli dokumentidele.

Rohkem Gaurav Siyalist

Liituge meie uudiskirjaga

Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!

Tellimiseks klõpsake siin