2024. április 19., péntek

Gyorskeresés

Python help me

Írta: | Kulcsszavak: python . raspberry . helpme

[ ÚJ BEJEGYZÉS ]

Valaki magyarázza már meg nekem a következőt:
def time1(ora):
if ora[0] == "0":
nulla()
elif ora[0] == "1":
egy()
elif ora[0] == "2":
ketto()
elif ora[0] == "3":
harom()
elif ora[0] == "4":
negy()
elif ora[0] == "5":
ot()
elif ora[0] == "6":
hat()
elif ora[0] == "7":
het()
elif ora[0] == "8":
nyolc()
else:
kilenc()

És a hiba:

pi@raspberrypi:~ $ python ora.py
File "ora.py", line 188
elif ora[0]] == "1":
^
IndentationError: unindent does not match any outer indentation level

az ora az egy string változó, és annak az első "karakterét" vizsgálnám.
én nem értem... :W
Pedig utánanéztem, az if-eket, így kell írni...
vagy def-ben nem lehet meghívni másik "def"-et?? :W :W :W

C#-ot tanulok, lehet, hogy az is bekever nekem itt :U

Itt található az egész kód

Hozzászólások

(#1) Cucuska2


Cucuska2
őstag

Hát van egy zárojel bezárás a kijelölt sorban, ami ott magában ácsorog!

Rock and stone, to the bone! Leave no dwarf behind!

(#2) petya220 válasza Cucuska2 (#1) üzenetére


petya220
senior tag

oh, nem láttam!
Kiszedtem, de még mindig ugyanazzal a hibával leáll.. :W

"Neked is pörög az agyad a szarokon, amíg a mosoly a szádra kanyarodik."

(#3) Silεncε válasza petya220 (#2) üzenetére


Silεncε
őstag

Mit használsz behúzásra? Szóközt vagy tabot? Egyébként ez a kód, amit ide másoltál, hibátlanul lefut nálam. Nem tudom, a kód ablak mennyit változtat a behúzáson, de a python nagyon kényes a behúzásra (mivel ugye azok különítik el például az if tartalmát). Ez a hiba is a behúzások miatt jön, próbáld meg újratabolni az egészet.

[ Szerkesztve ]

(#4) farkas00001


farkas00001
újonc

Hello!

Ahogy az error message is mutatja az intendalassal van gondja. Valoszinuleg ahogy elottem is leirtak vegyesen van tab es space, amire a python erzekeny. Probald meg betenni notepad++ba es pipald be hogy mutasson minden karaktert, igy latni fogod a spacenek es tabnak megfelelo karaktereket is.

Amugy jotanacskent tudom mondani hogy mindig keress ra az adott hibauzenetre googellel, hivatalos dokumentacio, stackoverflow, nyelv specifikus leirasok segitenek.

(https://stackoverflow.com/questions/492387/indentationerror-unindent-does-not-match-any-outer-indentation-level)

Ufv,
Dome

(#5) apezka válasza Silεncε (#3) üzenetére


apezka
tag

Megerősítem Silenc3Hun válaszát. A linkelt kód alapján egyszerre használsz szóközt ("if" előtt) és tab-ot behúzásra. Replaceld a tab-ot szóközökre (4db-ra) vagy a 4db szóköt egy tab-ra.

A stressz akkor jön, amikor nincs kit pofán b...!

(#6) petya220 válasza Silεncε (#3) üzenetére


petya220
senior tag

Szia!

ahhh, köszi!! :D
Visual studio code tab helyett space-eket rakott be... :W :W :W
Mostmár fut! :D Persze némi alakítással..
köszönöm mindenkinek!

Most már megy az idő kiirításom a kijelzőkre
Most csak a hőfokot kell megoldani! De az menni fog, remélem.. :D
:R :R :R

[ Szerkesztve ]

"Neked is pörög az agyad a szarokon, amíg a mosoly a szádra kanyarodik."

(#7) petya220 válasza petya220 (#6) üzenetére


petya220
senior tag

szerk

"Neked is pörög az agyad a szarokon, amíg a mosoly a szádra kanyarodik."

(#8) BoB válasza petya220 (#6) üzenetére


BoB
veterán

"Visual studio code tab helyett space-eket rakott be... :W :W :W"

És nagyon helyesen tette. A falbaverős szmájli akkor kell amikor valaki tab-ot használ python kódban.

Lásd: PEP 8 -- Style Guide for Python Code

[ Szerkesztve ]

You may corrupt the souls of men, but I am steel. I am doom.

(#9) Silεncε válasza BoB (#8) üzenetére


Silεncε
őstag

Én máfél év C++ után használtam először Pythont, így kb első pillanattól fogva tabbal húzom be. Eddig még semmi probléma nem volt belőle (mondjuk most kicsit szünetel a Python, csak néha használom kisebb scriptek írására).

Egyébként ez a Tab vs Space téma az egyik legnagyobb harc a programozók között. Hiába na, sok időnk van :DD

[ Szerkesztve ]

(#10) BoB válasza Silεncε (#9) üzenetére


BoB
veterán

Sok szerkesztőben pont ezért van az hogy szóközt rak python kód esetén, ha tab-ot nyomsz. Lehet nálad is szóközök vannak csak nem tűnt fel eddig :D

You may corrupt the souls of men, but I am steel. I am doom.

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.