redbomberle hat geschrieben:Hi zusammen, bin gerade an einem else if statement, bzw. an der Python syntax am verzweifeln:
Deine Einrückung ist ein wenig komisch - laut PEP8 sind 4 Spaces Standard. Außerdem braucht es keine Klammern nach if / elif:
So sieht es besser aus:
Code: Alles auswählen
for line in data_file:
c=+1;
if c==3:
lgg.setWindowSizeDetection(line.strip(" \t\r\n;"))
elif c==5:
lgg.setOffsetDetection(line.strip("\t\r\n;"))
elif c==7:
lgg.setWindowSizeSpike(line.strip("\t\r\n;"))
else:
print line.strip(" \t\r\n;")
data_file.close()
Ich würde es aber eher so schreiben (ungetestet):
Code: Alles auswählen
mapping = {
3: lgg.setWindowSizeDetection
5: lgg.setOffsetDetection
7: lgg.setWindowSizeSpike
}
for index, line in enumerate(data_file):
try:
mapping[index](line.strip("\t\r\n;"))
except IndexError, e:
print line.strip(" \t\r\n;")
Man kann sich natürlich streiten, ob das schon bei drei Verzweigungen sinnvoll ist. Aber wenn es ggf. noch mehr werden, kann man so einfacher neue Funktionen einbauen.
Auf jeden Fall würde ich das data_file.close() nicht an dieser Stelle aufrufen. Entweder man öffnet die Datei mit dem with-Statement und spart sich das close(), oder aber man baut sich ein try...except...finally Kontrsukt, wo man im finally-Zweig das close() aufruft.
Nutzt Du Python 3.x? Dann ist print natürlich wieder eine Funktion. (Wobei man def. kein Semikolon setzen darf danach)