Fehler bei Variablendeklaration?

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.
Mitsch

Fehler bei Variablendeklaration?

Beitragvon Mitsch » Mittwoch 28. Dezember 2005, 14:41

Hallo,
ich komm einfach nicht drauf wo der Fehler liegt. Ersteinmal der Code:

http://paste.ubuntuusers.de/1129

Wenn ich die Zeile "addFileto = "C:\Programme\xampp\htdocs\xampp\\"" in Line 99 auskommentiere funktioniert das ganze.

Wenn ich jedoch die zeile nicht kommentiere dann erhalte ich folgenden Fehler?

>>> Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python24\lib\lib-tk\Tkinter.py", line 1345, in __call__
return self.func(*args)
File "C:\Python24\lib\idlelib\ScriptBinding.py", line 142, in run_module_event
code = self.checksyntax(filename)
File "C:\Python24\lib\idlelib\ScriptBinding.py", line 101, in checksyntax
return compile(source, filename, "exec")
ValueError: invalid \x escape


kann mir jemand sagen wo das Problem liegt?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Fehler bei Variablendeklaration?

Beitragvon gerold » Mittwoch 28. Dezember 2005, 14:46

Mitsch hat geschrieben:Wenn ich die Zeile "addFileto = "C:\Programme\xampp\htdocs\xampp"" in Line 99 auskommentiere funktioniert das ganze.

Hi Mitsch!

Du musst die Backslashes escapen:

Code: Alles auswählen

"C:\\Programme\\xampp\\htdocs\\xampp"

oder mit einen Raw-String daraus machen.

mfg
Gerold
:-)
Zuletzt geändert von gerold am Mittwoch 28. Dezember 2005, 14:59, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Gast

Re: Fehler bei Variablendeklaration?

Beitragvon Gast » Mittwoch 28. Dezember 2005, 14:52

gerold hat geschrieben:
Mitsch hat geschrieben:Wenn ich die Zeile "addFileto = "C:\Programme\xampp\htdocs\xampp"" in Line 99 auskommentiere funktioniert das ganze.

Hi Mitsch!

Du musst die Backslashes escapen:

Code: Alles auswählen

"C:\\Programme\\xampp\\htdocs\xampp"

oder mit einen Raw-String daraus machen.

mfg
Gerold
:-)


Jetzt tuts mit \\.
Ein paar Zeilen drüber habe ich aber nochmals so einen String. Warum braucht man da die // nicht?
Benutzeravatar
Rockstar
User
Beiträge: 15
Registriert: Samstag 12. November 2005, 17:31
Kontaktdaten:

Beitragvon Rockstar » Mittwoch 28. Dezember 2005, 20:06

Weil \ vor spezielle Sonerzeichen gesetzt wird damit sie auch als diese erkannt werden.
Angenommen du willst ein " in einen String schreiben.

Code: Alles auswählen

string = "Dies ist ein spezieller String"

mit ":

Code: Alles auswählen

string = "Dies ist ein "spezieller" String"

würde nicht funktionieren.
Also wird mit \ dem Interpreter gesagt das ein Sonderzeichen folgt

Code: Alles auswählen

string = "Dies ist ein \"spezieller\" String"

und da der \ an sich auch ein sonderzeichen ist muss dieser auch escaped werden.

Code: Alles auswählen

datei = "C:\\test.gif"

Und / ist einfach kein Sonderzeichen das in Strings escaped werden muss.

Ich hoffe das war so ungefähr richtig. :)

Wer ist online?

Mitglieder in diesem Forum: beerus