Was ich glaube, geschieht, ist die '
in Ihrem c
Variable string entkam werden muss, und PyCharm weiß dies zur Laufzeit, da Sie die vollständige Zeichenfolge in "
umgeben sind (Sie im Debugger auffallen werden, Ihre c
Zeichenfolge jetzt umgeben von '
). Um das einfache Anführungszeichen zu umgehen, ändert es sich in \'
, aber jetzt gibt es eine \
in Ihrer Zeichenfolge, die es zu entkommen braucht, und um \
in Python zu umgehen, geben Sie \\
ein.
EDIT Lassen Sie mich sehen, wenn ich die Reihenfolge der Flucht hier weiter erklären kann.
"u' this is not normal"
wird c
zugewiesen
- PyCharm wandelt die Zeichenfolge in
c
zu 'u' this is not normal'
zur Laufzeit. Sehen Sie, wie, ohne die 2. '
zu entkommen, Ihre Schnur jetzt direkt nach u
geschlossen wird.
- PyCharm entkommt dem
'
automatisch für Sie, indem Sie einen Schrägstrich davor hinzufügen. Die Zeichenfolge lautet jetzt 'u\' this is not normal'
. An diesem Punkt sollte alles in Ordnung sein, aber PyCharm unternimmt vielleicht einen zusätzlichen Schritt zur Sicherheit.
- PyCharm entkernt dann den Schrägstrich, den es gerade zu Ihrer Zeichenfolge hinzugefügt hat, wobei die Zeichenfolge wie folgt bleibt:
'u\\' this is not normal'
.
Es ist wahrscheinlich eine Einstellung in PyCharm. Führt es zu einem tatsächlichen Problem mit Ihrem Code?
Wenn Ihr String einen tatsächlichen Backslash enthält, zeigt PyCharm '\\\\' anstelle von '\\'? – ruakh
@ruakh In der Praxis zeigt 'string = 'abc \\ abc'' dann 'print string' 'abc \ abc' in der Konsole, aber' abc \\ abc' in PyCharm Debugger-Variablen. – guo
Es weiß nicht, dass Sie '\ '' schreiben, Sie können '\ n' schreiben, um sicherzustellen, dass die Anzeige nicht unterbrochen wird, können doppelte Sonderzeichen vermieden werden. –