Forum » Programiranje » Python napaka: IndentationError: unindent does not match any outer indentation level
Python napaka: IndentationError: unindent does not match any outer indentation level
filips ::
Imam funkcijo v pythonu, ki preveri, če status ni 0, preveri showClass in showOther, če sta nič in česta napiše napako iz ene spremenljivke, drugačepa če je showClass 1 v spremenljivko string doda novo vrstico in štiri presledkein to naredi tudi za komentar. Javi ma to napako:
Koda je spodaj:
File "C:\Users\Miha\documents\visual studio 2015\Projects\Python config\Python config\pythonConfig\pythonConfig.py", line 7 string += "class "+className+":\n " ^ IndentationError: unindent does not match any outer indentation level Press any key to continue . . .
Koda je spodaj:
def toString(className='',addclass='',addnoclass=''): if status!=0: if showClass=='' or showOther=='': status_message=language.showClassShowOther status=0 if showClass==1: string += "class "+className+":\n " if komentar!='': string += '#'+komentar[0]+"\n "
smacker ::
Nauči se brat poročila o napaki, zelo koristi pri programiranju. Ta pomeni, da imaš v 7. vrstici neveljaven zamik (tabulatorji na začetku). Python je občutljiv na te stvati. Izgleda ok, preveeri če imaš slučajno presledke namesto tabulatorjev.
smacker ::
Ah... še pokaže ti kje je napaka, vidiš znak ^ pod narekovajem? V stringu (med narekovaji) maš tabulator. Če hočeš da se v konzoli tabulator izpiše, daj \t. Isto napako maš še 2 vrstici nižje
Zgodovina sprememb…
- spremenil: smacker ()
111111111111 ::
Za sekundo. :) To kar je rekel smacker. Ne Pitončku tabulatorjev vrivat, ker se mu malo zmeša. :)
Zgodovina sprememb…
- spremenilo: 111111111111 ()
filips ::
Če napišem \t, namesto tabulatorja mi napišeše vedno enako, razen da napiše
Koda:
string += "class "+className+":\n\t"
Koda:
def toString(className='',addclass='',addnoclass=''): if status!=0: if showClass=='' or showOther=='': status_message=language.showClassShowOther status=0 if showClass==1: string += "class "+className+":\n\t" if komentar!='': string += '#'+komentar[0]+"\n\t"
111111111111 ::
OK. Pobriši vse tabulatorje v 6 vrstici in vse tabulaterje v 7 in jih ponovno naredi. Poročaj o napaki.
111111111111 ::
V katerem editorju to pišeš, ker nekateri editorji se delajo pametne in ti kar vrivajo tabulatorje.
Zgodovina sprememb…
- spremenilo: 111111111111 ()
ragezor ::
smacker je mislil biti pameten pa mu ni uspelo
presledki in tabi ne vplivajo na kodo, ce so znotraj stringa
v katerem programu pises kodo? vecina se jim da nastaviti, da ti kazejo whitespace karakterje (vedno, ali takrat ko oznacis tekst)
tako bos videl kje imas presledke in kje tabulatorje. jih pa ne smes mesat. najbolje je ce vedno uporabljas presledke. programi kjer pises kodo se spet dajo skonfigurirati, da ti vstavijo 4 presledke ko stisnes tab.
zelo verjetno je napaka nastala, ker si kaj kopiral iz neta ali kaj podobnega.
presledki in tabi ne vplivajo na kodo, ce so znotraj stringa
v katerem programu pises kodo? vecina se jim da nastaviti, da ti kazejo whitespace karakterje (vedno, ali takrat ko oznacis tekst)
tako bos videl kje imas presledke in kje tabulatorje. jih pa ne smes mesat. najbolje je ce vedno uporabljas presledke. programi kjer pises kodo se spet dajo skonfigurirati, da ti vstavijo 4 presledke ko stisnes tab.
zelo verjetno je napaka nastala, ker si kaj kopiral iz neta ali kaj podobnega.
111111111111 ::
Temu se reče bad coding, če v stringe vrivaš tabulatorje. Tabulatorje definiraš z \t in nič drugače, vse ostalo samo blebetanje. Pri enem je tabulator 4 presledke pri drugem 8, tako da v string se tabulatorjev ne vriva in pika. Compiler pa načeloma požre. Tako da dobim kar kurjo polt, ko vidim tabulatorje v stringu, kaj je problem naštucat \t\t itd... Pa bo povsod lepo zgledal pri izpisih.
jan_g ::
Za poravnavanje/odmikanje/nasplošno izpisovanje teksta pridejo prav funkcije ljust, rjust in center. Večkrat pride prav oz. je lažje poravnavati stolpce teksta za kakšne ad-hoc izpise (v primerjavi z ročnim dodajanjem presledkov ali tabov).
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Slo-Tech userscriptsOddelek: Izdelava spletišč | 5198 (2650) | jype |
» | Python keyError 3Oddelek: Programiranje | 1197 (835) | filips |
» | [Java]kompailiranje iz cmdOddelek: Programiranje | 1315 (1039) | ragezor |
⊘ | Pomoč pri spreminjanju kodeOddelek: Programiranje | 1885 (1685) | dynr la |
» | [C++] for {}Oddelek: Programiranje | 1721 (1415) | Gundolf |