Seite 1 von 1

python3.1 + raw string + backslash = syntax error?

Verfasst: Donnerstag 19. August 2010, 13:38
von ntrunk
Hallo Pythonistas,
ich experimentiere gerade mit Python3.1 und bin da auf folgendes gestoßen:

Code: Alles auswählen

>>> r'\'
  File "<stdin>", line 1
    r'\'
       ^
SyntaxError: EOL while scanning string literal
dagegen liefert

Code: Alles auswählen

>>> r'\irgendwas'
'\\irgendwas'
das erwartete Ergebnis.
Bug? Feature?

Re: python3.1 + raw string + backslash = syntax error?

Verfasst: Donnerstag 19. August 2010, 13:44
von cofi
Das ist nichts neues:

Code: Alles auswählen

Python 2.6.6rc2 (r266rc2:84114, Aug 18 2010, 07:33:44) 
[GCC 4.4.5 20100816 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> r"\"
  File "<stdin>", line 1
    r"\"
       ^
SyntaxError: EOL while scanning string literal
Ein Backslash darf einfach nicht das letzte Zeichen bei raw-Strings sein. Den Grund dahinter kann ich dir jetzt allerdings nicht nennen.

Re: python3.1 + raw string + backslash = syntax error?

Verfasst: Donnerstag 19. August 2010, 13:59
von ntrunk
cofi hat geschrieben:Das ist nichts neues:
[...]
und
cofi hat geschrieben:Ein Backslash darf einfach nicht das letzte Zeichen bei raw-Strings sein. Den Grund dahinter kann ich dir jetzt allerdings nicht nennen.
Merkwürdig...
In 2.6 ist mir das noch nicht aufgefallen, allerdings benutze ich raw strings so gut wie gar nicht. Naja, ich kann damit leben, ich steck's einfach in die Schublade mit den Kuriositäten ;-)

Re: python3.1 + raw string + backslash = syntax error?

Verfasst: Donnerstag 19. August 2010, 14:18
von EyDu
cofi hat geschrieben:Ein Backslash darf einfach nicht das letzte Zeichen bei raw-Strings sein. Den Grund dahinter kann ich dir jetzt allerdings nicht nennen.

Code: Alles auswählen

>>> r'\''
"\\'"

Re: python3.1 + raw string + backslash = syntax error?

Verfasst: Donnerstag 19. August 2010, 15:38
von ntrunk
EyDu hat geschrieben:

Code: Alles auswählen

>>> r'\''
"\\'"
Jetzt wo du's sagst, hör ich's auch :idea:
Das erklärt es natürlich, vielen Dank.