Įtrauka yra gyvybiškai svarbi skaitomo, prižiūrimo kodo savybė, tačiau nedaug kalbų tai įgyvendina. Python yra vienas iš tų nedaugelio.
Jei „Python“ nustato, kad jūsų kodas yra įtrauktas neteisingai, paleisdami kodą pamatysite pranešimą „IndentationError“. Bet kaip tai išspręsti ir kaip to išvengti ateityje?
Kodėl „Python“ gaunate įtraukimo klaidą?
Klaida „IndentationError: tikėtinas įtrauktas blokas“ yra tai, ką greičiausiai pamatysite pirmą kartą pradėję naudoti Python, ypač jei naudojate kitą programavimo kalbą.
The Python įtraukų taisyklių specifika yra sudėtingi, tačiau juos sudaro vienas dalykas: kodo įtrauka blokuose. Tai taikoma funkcijoms, if sąlygoms ir pan. Štai netinkamai suformatuoto Python kodo pavyzdys:
fname = "Gaurav"
lname = "Sijalas"
if fname == "Gaurav" ir lname == "Siyal":
spausdinti („Tu esi Gauravas“)
Kitas:
print („Tu esi kažkas kitas“)
Kai bandysite paleisti aukščiau pateiktą kodą, gausite tokį pranešimą:
Failas "tmp.py", 5 eilutė
spausdinti („Tu esi Gauravas“)
^
IndentationError: tikimasi įtraukos bloko
Vietoj to turėtumėte pridėti skirtuką arba tarpų seriją dviejų eilučių, žyminčių blokus, pradžioje:
fname = "Gaurav"
lname = "Sijalas"
if fname == "Gaurav" ir lname == "Siyal":
spausdinti („Tu esi Gauravas“)
Kitas:
print („Tu esi kažkas kitas“)
Jei įtraukiate tarpais, iš tikrųjų galite naudoti bet kurį jums patinkantį skaičių, jei tik esate nuoseklus ir nedviprasmiškas. Dauguma programuotojų naudoja du, keturis arba aštuonis tarpus.
Dažni teisingo įtraukimo atvejai
Štai keletas pavyzdžių, kuriais galite remtis, kad įsitikintumėte, jog įtrauka teisingai.
Jei teiginiai
Įtraukite bloką, esantį po an jeigu pareiškimas:
if my_name == "Gaurav":
print ("Mano vardas Gauravas")
grąžinti Tiesa
Funkcijos
Funkcijos kūnas yra blokas. Turėtumėte įtraukti visą šį bloką:
def magic_number():
rezultatas = 42
grąžinti rezultatą
spausdinti magic_number()
Kilpoms
Kaip ir teiginio if, for ciklo turinys turi būti įtrauktas vienu lygiu daugiau nei eilutė, prasidedanti dėl raktažodis:
i diapazone (10):
spausdinti (i)
Įsitikinkite, kad redaktorius tinkamai įtraukė
Dauguma šiuolaikinių teksto redaktorių palaiko automatinį kodo įtraukimą. Jei redaktorius nustato, kad kodo eilutė turi būti įtraukta, ji automatiškai pridės tabuliavimo ženklus arba tarpus.
Į Spyderis, įtraukos parinktys pateikiamos žemiau Įrankiai > Nuostatos > Šaltinio kodas:
Jei naudojate vim, galite redaguoti savo konfigūraciją ir naudokite autoindent ir susijusias įtraukos konfigūravimo parinktis. Pavyzdžiui, čia yra įprasta sąranka:
nustatyti automatinį įtraukimą
nustatyti išplėstinį skirtuką
nustatyti tabstop=4
nustatykite softtabstop=4
nustatyti Shiftwidth=4
Tai automatiškai įtrauks keturis tarpus.
Tačiau joks redaktorius negali padaryti automatinio įtraukimo neperšaunamo. Vis tiek turėsite atkreipti dėmesį į įtrauką, nes kai kurie atvejai yra dviprasmiški:
Šiame pavyzdyje galutinis grąžinti sakinys yra įtrauka vienu lygiu nuo funkcijos parašo pirmoje eilutėje. Tačiau jei nustatysite žymeklį priešpaskutinės eilutės pabaigoje ir paspauskite Įeikite, gali atsitikti vienas iš dviejų dalykų. Jūsų redaktorius gali padėti žymeklį:
- Dvi įtraukos lygiai, sulygiuoti su „res =...“
- Viena įtrauka, sulygiuota su „else:“
Jūsų redaktorius negali atskirti šių dviejų atvejų: galbūt norėsite įtraukti daugiau kodo į if/else bloką arba ne.
„Python“ klaidos „Numatomas įtrauktas blokas“ tvarkymas
Klaidos yra kasdienis Python reiškinys, kaip ir bet kurioje kitoje programavimo kalboje. Griežtos „Python“ taisyklės dėl įtraukos gali pridėti naujos rūšies klaidų, apie kurias reikia galvoti, tačiau jos yra naudingos. Tinkamai įtrauktas kodas yra lengviau skaitomas ir nuoseklesnis visose komandose.
Įtraukos klaida nėra vienintelė, su kuria turėsite susidurti. Tai padeda susipažinti su įprastomis Python klaidomis, kad žinotumėte, kaip jas derinti ir ką daryti, kad jas ištaisytumėte.
Ką reiškia „Python“ klaida „Sąrašo indeksas už diapazono ribų“?
Skaitykite toliau
Susijusios temos
- Programavimas
- Python
Apie autorių
Gaurav Siyal turi dvejų metų rašymo patirtį, rašo skaitmeninės rinkodaros įmonėms ir programinės įrangos gyvavimo ciklo dokumentus.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!
Spauskite čia norėdami užsiprenumeruoti