Увлачење је витална карактеристика читљивог кода који се може одржавати, али га неколико језика примењује. Питхон је један од тих неколико.

Ако Питхон утврди да је ваш код погрешно увучен, видећете поруку „ИндентатионЕррор“ када покренете свој код. Али како то поправити и како спречити у будућности?

Зашто добијате грешку ИндентатионЕррор у Питхон-у?

Грешка „ИндентатионЕррор: очекивао се увучени блок“ је нешто што ћете вероватно видети када први пут почнете да користите Питхон, посебно ако сте из другог програмског језика.

Тхе специфичности Пајтонових правила увлачења су сложени, али се своде на једну ствар: увлачење кода у блокове. Ово важи за функције, ако клаузуле и тако даље. Ево примера погрешно форматираног Питхон кода:

фнаме = "Гаурав"
лнаме = "Сииал"

ако фнаме == "Гаурав" и лнаме == "Сииал":
принт("Ти си Гаурав")
остало:
принт("Ти си неко други")

Када покушате да покренете горњи код, добићете поруку попут ове:

 Фајл "тмп.пи", ред 5
принт("Ти си Гаурав")
^
ИндентатионЕррор: очекивао се увучени блок

Уместо тога, требало би да додате или таб или низ размака на почетак два реда који представљају блокове:

фнаме = "Гаурав"
лнаме = "Сииал"

ако фнаме == "Гаурав" и лнаме == "Сииал":
принт("Ти си Гаурав")
остало:
принт("Ти си неко други")

Ако увлачите размаке, заправо можете користити било који број који желите, све док сте доследни и недвосмислени. Већина програмера користи два, четири или осам размака.

Уобичајени случајеви исправног увлачења

Ево неколико примера на које можете да се позовете да бисте били сигурни да сте исправно увучени.

Ако изјаве

Увуци блок који следи ако изјава:

иф ми_наме == "Гаурав":
принт("Моје име је Гаурав")
ретурн Тачно

Функције

Тело функције је блок. Требало би да увучете цео овај блок:

деф магиц_нумбер():
резултат = 42
врати резултат

принт магиц_нумбер()

Фор Лоопс

Као и код иф наредбе, тело фор петље треба да буде увучено један ниво више од линије која почиње са за кључна реч:

за и у опсегу (10):
штампа (и)

Уверите се да је ваш уредник исправно увучен

Већина модерних уређивача текста подржава аутоматско увлачење кода. Ако ваш уређивач утврди да ред кода треба да буде увучен, аутоматски ће додати табове или размаке.

Ин Спидер, опције увлачења су доступне под Алатке > Преференце > Изворни код:

Ако користите вим, можете измените своју конфигурацију и користите аутоиндент и повезане опције за конфигурисање увлачења. На пример, ево уобичајеног подешавања:

подеси аутоиндент
сет екпандтаб
постави табстоп=4
сет софттабстоп=4
сет схифтвидтх=4

Ово ће аутоматски увући четири размака.

Међутим, ниједан уређивач не може учинити аутоматско увлачење непробојним. И даље ћете морати да обратите пажњу на увлачење јер су неки случајеви двосмислени:

У овом примеру, коначна повратак израз је увучен за један ниво од потписа функције у првом реду. Међутим, ако поставите курсор на крај претпоследњег реда и притисните Ентер, може се десити једна од две ствари. Ваш уредник би могао да позиционира курсор:

  1. Два нивоа увлачења, усклађена са "рес =..."
  2. Један ниво увлаке у, усклађен са „остало:“

Ваш уређивач не може да разликује ова два случаја: можда ћете желети да додате још кода у блок иф/елсе, а можда и не.

Руковање Питхон-овом грешком „Очекивао се увучени блок“.

Грешке су свакодневна појава у Пајтону, баш као иу сваком другом програмском језику. Питхон-ова строга правила о увлачењу могу додати нову врсту грешке за размишљање, али су корисна. Правилно увучен код је читљивији и конзистентнији у свим тимовима.

Грешка увлачења није једина са којом ћете морати да се позабавите. Помаже да будете упознати са уобичајеним Питхон грешкама тако да знате како да их отклоните и шта да урадите да их поправите.

Шта значи грешка Питхон-а „Индекс листе ван опсега“?

Реад Нект

ОбјавиТвеетОбјавиЕмаил

Повезане теме

  • Програмирање
  • Питхон

О аутору

Гаурав Сииал (Објављена 64 чланка)

Гаурав Сииал има две године искуства писања, писања за низ фирми за дигитални маркетинг и докумената о животном циклусу софтвера.

Више од Гаурав Сииал

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, рецензије, бесплатне е-књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили