Try und Except in while schleife

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
Hartmannsgruber
User
Beiträge: 89
Registriert: Mittwoch 15. Januar 2014, 22:30
Wohnort: Bad Kötzting
Kontaktdaten:

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 :-(
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.
Antworten