» »

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:
  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    "

misek ::

Morda mešaš presledke in tabulatorje?

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.

filips ::

Imam 3 tabulatorje

misek ::

Kaj pa v preostalih vrsticah imaš tudi tabulatorje ali kakšen presledek?

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…

filips ::

Če napišem \t, namesto tabulatorja mi napišeše vedno enako, razen da napiše
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.

filips ::

Zdaj mi dela :)

111111111111 ::

V katerem editorju to pišeš, ker nekateri editorji se delajo pametne in ti kar vrivajo tabulatorje.

Zgodovina sprememb…

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.

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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Slo-Tech userscripts

Oddelek: Izdelava spletišč
175102 (2554) jype
»

Python keyError 3

Oddelek: Programiranje
141165 (803) filips
»

[Java]kompailiranje iz cmd

Oddelek: Programiranje
91253 (977) ragezor

Pomoč pri spreminjanju kode

Oddelek: Programiranje
61847 (1647) dynr la
»

[C++] for {}

Oddelek: Programiranje
291677 (1371) Gundolf

Več podobnih tem