Verständnisfrage zum Einrücken in Funktionen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Becks
User
Beiträge: 6
Registriert: Freitag 20. März 2009, 11:18

Montag 23. März 2009, 08:31

Hallo zusammen,

hab relativ lange an meiner Funktion getüftelt bis ich sie ohne Fehler zum laufen gebracht habe.

Dabei hab ich mich dann gefragt was an meiner Einrückung falsch war:

Fehlerhaftes einrücken

Code: Alles auswählen

def searchAudio(text):
	audio = ["LD", "MD", "AC3"]
    if any(format in text for format in audio):
       result = [format for format in audio if format in text]
       string = "".join(result)
    return string
Fehlerfreies einrücken

Code: Alles auswählen

def searchAudio(text):
	audio = ["LD", "MD", "AC3"]
        if any(format in text for format in audio):
         result = [format for format in audio if format in text]
         string = "".join(result)
        return string
Was ist falsch daran, wenn ich die if auf gleicher Höhe mit dem audio habe?
Erst nachdem ich die if weiter einrückte und alles untendrann funktionierte es. Das return ist nun auf gleicher Höhe mit dem if. Warum muss nicht alles auf gleiche Höhe mit dem audio? Ich arbeite mit PyDev und dies hat mir die Einrückung nach der Funktion vorgegeben, da hab ich dann meine Liste audio plaziert mit der Annahme alles müsse auf gleicher Höhe darunter, wohl falsch gedacht.

Viele Grüße & Dank,
Becks
tordmor
User
Beiträge: 100
Registriert: Donnerstag 20. November 2008, 10:29
Wohnort: Stuttgart

Montag 23. März 2009, 08:36

Das erste ist korrekt. Dein Fehler lag wo anders. Möglicherweise Mischung von Tab und Space?

Edit: Korrekt nur was Einrückung betrifft. Bei der return Zeile ist string nicht belegt wenn die if Abfrage falsch ergibt.
http://www.felix-benner.com
Becks
User
Beiträge: 6
Registriert: Freitag 20. März 2009, 11:18

Montag 23. März 2009, 08:41

okay, vielen dank.

Weil gerade erstelle ich eine weitere Funktion, und dort konnte ich wie im 1. Bsp einrücken, nur dass ich den Inhalt der if nicht mit einem Tab einrücken, sonder mit 2 einrücken musste.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Montag 23. März 2009, 09:14

Tu dir selbst einen gefallen und rücke immer auf die selbe Art und weise ein. Also entweder Tabs oder Leerzeichen. Laut pep08 sollte man 4 Leerzeichen benutzen, dass kann man in den meisten Editoren auch einstellen.

Es gibt in Python keinen Fall wo du mal mit Tab einrücken kannst und woanders mit irgendetwas anderem Einrücken *musst*. Wenn das bei dir der Fall ist, hast du schon vorher irgendein anderes (Einrückungs)Problem. Achte einfach darauf womit du einrückst und mach es überall ohne Ausnahme gleich, dann hast du keine Probleme.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Montag 23. März 2009, 09:42

Darii hat geschrieben:Rücke immer auf die selbe Art und weise ein. Also entweder Tabs oder Leerzeichen. Laut pep08 sollte man 4 Leerzeichen benutzen, dass kann man in den meisten Editoren auch einstellen.

Es gibt in Python keinen Fall wo du mal mit Tab einrücken kannst und woanders mit irgendetwas anderem Einrücken *musst*. Wenn das bei dir der Fall ist, hast du schon vorher irgendein anderes (Einrückungs)Problem. Achte einfach darauf womit du einrückst und mach es überall ohne Ausnahme gleich, dann hast du keine Probleme.
Benutzeravatar
Goswin
User
Beiträge: 361
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen

Montag 23. März 2009, 10:39

Darii hat geschrieben:Laut pep08 sollte man 4 Leerzeichen benutzen.
Ich hätte gern eure Meinung darüber, ob diese "Empfehlung" irgendeine Drohung mit dem Damoklesschwert ist, im Sinne dass 4 Leerzeichen künftig als bindende Vorschrift vorgeschlagen werden.
lunar

Montag 23. März 2009, 10:48

Goswin hat geschrieben:
Darii hat geschrieben:Laut pep08 sollte man 4 Leerzeichen benutzen.
Ich hätte gern eure Meinung darüber, ob diese "Empfehlung" irgendeine Drohung mit dem Damoklesschwert ist, im Sinne dass 4 Leerzeichen künftig als bindende Vorschrift vorgeschlagen werden.
Der Interpreter erzwingt dieser Einrückung nicht, falls du das wissen wolltest.
Antworten