Sisennys on tärkeä ominaisuus luettavassa, ylläpidettävässä koodissa, mutta harvat kielet panevat sen täytäntöön. Python on yksi niistä harvoista.

Jos Python toteaa, että koodisi on sisennetty väärin, näet "IndentationError" -viestin, kun suoritat koodin. Mutta miten korjaat tämän ja miten voit estää sen tulevaisuudessa?

Miksi saat IndentationError-ilmoituksen Pythonissa?

"IndentationError: odotettu sisennetty lohko" -virhe on jotain, jonka todennäköisesti näet, kun aloitat Pythonin käytön, varsinkin jos olet kotoisin toisesta ohjelmointikielestä.

The Pythonin sisennyssääntöjen yksityiskohdat ovat monimutkaisia, mutta ne tiivistyvät yhteen asiaan: sisennyskoodi lohkoissa. Tämä koskee funktioita, if-lauseita ja niin edelleen. Tässä on esimerkki väärin muotoillusta Python-koodista:

fname = "Gaurav"
lname = "Siyal"

if fname == "Gaurav" ja lname == "Siyal":
print ("Sinä olet Gaurav")
muu:
print("Olet joku muu")

Kun yrität suorittaa yllä olevan koodin, saat seuraavanlaisen viestin:

 Tiedosto "tmp.py", rivi 5
print ("Sinä olet Gaurav")
^
IndentationError: odotettiin sisennettyä lohkoa
instagram viewer

Sen sijaan sinun tulee lisätä joko sarkain tai sarja välilyöntejä kahden lohkoja edustavan rivin alkuun:

fname = "Gaurav"
lname = "Siyal"

if fname == "Gaurav" ja lname == "Siyal":
print ("Sinä olet Gaurav")
muu:
print("Olet joku muu")

Jos sisennyt välilyönnillä, voit itse asiassa käyttää mitä tahansa numeroa, kunhan olet johdonmukainen ja yksiselitteinen. Useimmat ohjelmoijat käyttävät kahta, neljää tai kahdeksaa välilyöntiä.

Yleisiä oikean sisennyksen tapauksia

Tässä on joitain esimerkkejä, joihin voit viitata, jotta voit varmistaa, että sisennyt oikein.

Jos lausunnot

Sisennä lohkoa, joka seuraa an jos lausunto:

if my_name == "Gaurav":
print("Nimeni on Gaurav")
palauta Totta

Toiminnot

Funktion runko on lohko. Sinun tulee sisentää koko tämä lohko:

def magic_number():
tulos = 42
palauttaa tuloksen

tulosta magic_number()

Loopsille

Kuten if-lauseessa, for-silmukan runko tulee sisentää yhden tason enemmän kuin rivillä, joka alkaa varten avainsana:

minulle alueella (10):
tulosta (i)

Varmista, että toimittajasi sisentää oikein

Useimmat nykyaikaiset tekstieditorit tukevat automaattista koodin sisennystä. Jos editori päättää, että koodirivi on sisennettävä, se lisää sarkaimia tai välilyöntejä automaattisesti.

Sisään Spyder, sisennysvaihtoehdot ovat saatavilla alla Työkalut > Asetukset > Lähdekoodi:

Jos käytät vimiä, voit muokkaa määrityksiäsi ja käytä automaattinen indent ja siihen liittyvät vaihtoehdot sisennyksen määrittämiseen. Tässä on esimerkiksi yleinen kokoonpano:

aseta automaattinen indent
aseta expandtab
aseta tabstop=4
aseta softtabstop=4
aseta shiftwidth=4

Tämä sisentää automaattisesti neljällä välilyönnillä.

Mikään editori ei kuitenkaan voi tehdä automaattista sisennystä luodinkestäväksi. Sinun on silti kiinnitettävä huomiota sisennykseen, koska jotkin tapaukset ovat epäselviä:

Tässä esimerkissä lopullinen palata lause on sisennetty yhden tason sisään funktion allekirjoituksesta ensimmäisellä rivillä. Kuitenkin, jos asetat kohdistimen toiseksi viimeisen rivin loppuun ja painat Tulla sisään, toinen kahdesta asiasta voi tapahtua. Editorisi voisi sijoittaa kohdistimen:

  1. Kaksi sisennystasoa, tasattu sanalla "res =..."
  2. Yksi sisennys, tasattu "else:" -kohdan kanssa

Editorisi ei pysty erottamaan näitä kahta tapausta: saatat haluta lisätä koodia if/else-lohkoon tai et voi olla.

Pythonin "Odotettu sisennetty lohko" -virheen käsittely

Virheet ovat arkipäivää Pythonissa, kuten missä tahansa muussa ohjelmointikielessä. Pythonin tiukat sisennystä koskevat säännöt voivat lisätä uudenlaista ajateltavaa virhettä, mutta niistä on hyötyä. Oikein sisennetty koodi on luettavampaa ja johdonmukaisempaa kaikissa tiimeissä.

Sisennysvirhe ei ole ainoa, jota sinun on käsiteltävä. Se auttaa tuntemaan yleiset Python-virheet, jotta tiedät, kuinka ne korjataan ja mitä tehdä niiden korjaamiseksi.

Mitä Python "List index out of range" -virhe tarkoittaa?

Lue Seuraava

JaaTweetJaaSähköposti

Liittyvät aiheet

  • Ohjelmointi
  • Python

Kirjailijasta

Gaurav Siyal (64 artikkelia julkaistu)

Gaurav Siyalilla on kahden vuoden kirjoituskokemus, joka on kirjoittanut sarjalle digitaalisia markkinointiyrityksiä ja ohjelmistojen elinkaaridokumentteja.

Lisää Gaurav Siyalilta

tilaa uutiskirjeemme

Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e-kirjoja ja eksklusiivisia tarjouksia!

Klikkaa tästä tilataksesi