2010-08-24 12 views

Antwort

107

Sie setzen keine " vor dem Ende der Linie.

Verwenden """, wenn Sie dies tun wollen:

""" a very long string ...... 
....that can span multiple lines 
""" 
+7

Und vorsichtig, nur drei Anführungszeichen zu verwenden, hatte ich vier zufällig und der Fehler kam – Oregano

+0

Was ist mit Verketten von Zeichenfolgen und Variablen? –

12

(vorausgesetzt, Sie/wollen nicht haben Zeilenumbrüche in der Zeichenfolge ...)

Wie lange ist diese Saite wirklich?

Ich vermute, es gibt eine Grenze, wie lange eine Linie aus einer Datei oder von der Kommandozeile gelesen werden kann, und weil das Ende der Leitung choped off wird der Parser sieht so etwas wie s1="some very long string.......... (ohne Endung ") und damit löst einen Parsingfehler aus?

Sie können durch austretendes Zeilenumbrüche in Ihrer Quelle wie diese lange Linien in mehr aufgeteilt:

s1="some very long string.....\ 
...\ 
...." 
50

ich dieses Problem hatte - ich gearbeitet schließlich, dass der Grund war, dass ich \ Zeichen enthalten hatte in die Saite. Wenn Sie irgendwelche davon haben, "entkommen" sie mit \\ und es sollte gut funktionieren.

+4

Dieses Problem kommt oft. Außerdem hängt es davon ab, welche Plattform-OS Sie entwickeln. Schrägstrich und Anti-Schrägstrich sind unterschiedlich für Windows und Unix –

+0

Wow nicht sehen, kommen, was ist mit \ in Strings für Python dann – Leo

+0

Für den Schrägstrich vs Anti-Schrägstrich Problem können Sie os.name verwenden, um festzustellen, welches Betriebssystem Sie ausgeführt werden Der Code auf dann verwenden Sie eine if-Anweisung, um das entsprechende Zeichen festzulegen. – jmdeamer

1

Ich hatte auch diese Nachricht genaue Fehler, für mich das Problem durch Hinzufügen eines „\“

Es stellt sich heraus, dass meine lange Schnur, gebrochen in etwa acht Zeilen mit „\“ am Ende fixiert wurde, fehlte ein "\" in einer Zeile.

Python IDLE hat keine Zeilennummer angegeben, bei der dieser Fehler aufgetreten ist, aber es hat eine völlig korrekte Anweisung für die Zuweisung von Variablen rot hervorgehoben. Die tatsächliche verformte Zeichenfolgenanweisung (mehrere Zeilen lang mit "\") war neben der hervorgehobenen Anweisung. Vielleicht hilft das jemand anderem.

2

Auch ich hatte dieses Problem, obwohl dort Antworten hier waren ich dies zu einem wichtigen Punkt wollen nach / dort nicht leer spaces.Be davon sollten sich bewusst sein

3

In meiner Situation, ich hatte \r\n in meine einfach zitierten Wörterbuch-Strings. Ich ersetzte alle Instanzen von \r durch und \n durch \\n, und es behob mein Problem, ordnungsgemäß ausgefüllte Zeilenumbrüche in dem ausgewerteten dict zurückgeben.

ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n')) 
    ..... 
1

Ich konfrontiert ein ähnliches Problem. Ich hatte eine Zeichenfolge, die den Pfad zu einem Ordner in Windows enthielt, z. C:\Users\ Das Problem ist, dass \ ein Escape-Zeichen ist, und damit Sie es in Zeichenfolgen verwenden können, müssen Sie ein weiteres \ hinzufügen.

Falsch: C:\Users\

Richtig: C:\\\Users\\\

0

In meinem Fall verwende ich Windows-so habe ich doppelte Anführungszeichen statt einzelner zu verwenden.

C:\Users\Dr. Printer>python -mtimeit -s"a = 0" 
100000000 loops, best of 3: 0.011 usec per loop 
1

Ich bekam diesen Fehler in der Postgresql-Funktion. Ich hatte eine lange SQL, die ich in mehrere Zeilen mit \ für bessere Lesbarkeit brach. Das war jedoch das Problem. Ich entfernte alles und machte sie in einer Zeile, um das Problem zu beheben. Ich habe Pgadmin III benutzt.

Verwandte Themen