Seite 1 von 1

Try und Except in while schleife

Verfasst: Donnerstag 20. März 2014, 23:10
von Hartmannsgruber
Hi Leute,

ich habe ein Problem, das mir absolutes Kopfzerbrechen bereitet.
Also ich habe ein kleines Script, das das Verzeichnis wechselt.

So nun soll eine whil-Schleife solange ausgeführt werden, bis der eingegebene Pfad richtig ist.
Daher habe ich eine try und except Anweisung eingebaut.

Code: Alles auswählen

    while True:
      Wechsel = input("Wechseln zu: ")

      try:      
	chdir(Wechsel)
	break
      except:
	print("Datei oder Verzeichnis nicht vorhanden!")
Ich habe alle Einrückungen normalerweise brav gesetzt.
Wenn ich nun das Programm starte, erscheint die Fehlermeldung:
chdir(Wechsel)
^
TabError: inconsistent use of tabs and spaces in indentation

Was hat diese Fehlermeldung jetzt genau zu bedeuten, es sind doch alle Einrückungen gesetzt :-(

Re: Try und Except in while schleife

Verfasst: Donnerstag 20. März 2014, 23:17
von BlackJack
@Hartmannsgruber: Die Meldung ist doch eigentlich sehr deutlich: Du hast Tabs und Leerzeichen gemischt und da nicht definiert ist wie weit ein Tab einrückt, beschwert Python sich. Deshalb ist die Konvention ausschliesslich mit Leerzeichen einzurücken. Und zwar mit vier Leerzeichen pro Einrückebene. Dazu, und auch zur Schreibweise von Namen, könntest Du Dir mal den Style Guide for Python Code ansehen.

`chdir()` ist eine Funktion die man eher meiden sollte. Das ändert das aktuelle Arbeitsverzeichnis für das gesamte Programm, also vielleicht auch für Teile oder Bibliotheken die von dem Verzeichnis ausgehen welches am Anfang des Prozesses aktuell war.

Und ein nacktes ``except`` sollte man auch nicht verwenden. Das behandelt wirklich *alle* Ausnahmen, auch solche mit denen man nicht rechnet, und welche bei denen so eine `print()`-Ausgabe nicht wirklich die passende Reaktion ist.