2016-04-03 12 views
4

Zum Beispiel schreibe ich eine normale Zeichenfolge und eine andere "abnormal" Zeichenfolge wie folgt:Warum verwendet PyCharm einen doppelten Backslash, um darauf hinzuweisen, dass es sich um ein Escaping handelt?

enter image description here

Jetzt habe ich es zu debuggen, zu finden, dass, wie dies in dem Debug-Tool, wird die "abnormal" string angezeigt :

enter image description here

Hier ist die Frage:

Warum PyCharm zeigen doppelte Schrägstriche anstelle eines einzigen Backslash? Wie allen bekannt ist, bedeutet \''. Gibt es einen Trick?

+0

Wenn Ihr String einen tatsächlichen Backslash enthält, zeigt PyCharm '\\\\' anstelle von '\\'? – ruakh

+0

@ruakh In der Praxis zeigt 'string = 'abc \\ abc'' dann 'print string' 'abc \ abc' in der Konsole, aber' abc \\ abc' in PyCharm Debugger-Variablen. – guo

+0

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

Antwort

-1

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.

  1. "u' this is not normal" wird c zugewiesen
  2. 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.
  3. 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.
  4. 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?

+0

Ich bin immer noch verwirrt. Welche Rolle spielt die linke Seite? ie, was meinst du damit, 'in Python 'zu entkommen? Ich verstehe auch die Fluchtanweisung nicht. – guo

+0

Ja, die Sache ist, das Entkommen ist völlig redundant, weil es nicht nötig ist, ein einfaches Zitat in einer doppelten Anführungsstring zu vermeiden. Aus irgendeinem Grund scheint pycharm alle Strings in einfachen Anführungszeichen anzeigen zu wollen, was den hässlichen Nebeneffekt des Erzwingens von eingebetteten Anführungszeichen hat. Es sollte von Python lernen und einfach den String wie folgt anzeigen: '" Das ist nicht normal "' (d. H., Versuche nicht etwas zu reparieren, das nicht kaputt ist). – ekhumoro