der Grund: Python String-Zuweisungen ändern versehentlich '\ b' in '\ x08' und '\ a' in '\ x07', warum hat Python das gemacht?

8

Hatten zwei Antworten und einige Kommentare, erwähnten eine andere Frage, aber alle hatten nicht REASON geliefert, warum hat Python das geändert? wie "/ b" ist "/ x08" ist nur das Ergebnis, aber warum? Prost.

Ich versuche diesen Pfad hinzuzufügen "F: \ big data \ Python_coding \ diveintopython-5.4 \ py" in sys.path konnte daher der darunter liegende Code direkt importiert werden.

nach der Verwendung von: sys.path.append('F:\big data\Python_coding\diveintopython-5.4\py')

Ich fand, dass ich diesen Pfad innerhalb von sys.path hatte: 'F: \ x08ig data \ Python_coding \ diveintopython-5.4 \ py'

Ich habe dann mit dem folgenden Code getestet: mypath1='F:\big data\bython_coding\aiveintopython-5.4\ry'

Der Mypath1 ist jetzt: 'F:\x08ig data\x08ython_coding\x07iveintopython-5.4\ry'

alle '\ b' wurden in '\ x08' geändert und '\ a' wurde in '\ x07' geändert

Ich habe eine Weile gesucht, kann aber immer noch nicht den Grund finden, könntest du es bitte überprüfen und jede Rückmeldung oder Hilfe wird verwendet. Danke vielmals.

    
T.C 09.04.2014, 11:31
quelle

2 Antworten

10

Ihre Zeichenfolgen werden maskiert. Lesen Sie die Dokumentation zu String-Literalen :

  

Der Backslash () -Zeichen wird verwendet, um Zeichen zu entkommen   andernfalls haben sie eine spezielle Bedeutung, wie zB Newline, Backslash selbst,   oder das Zitatzeichen. String-Literale können optional vorangestellt werden   mit einem Buchstaben r' or R '; Solche Strings werden als rohe Strings bezeichnet und verwenden   verschiedene Regeln für Backslash-Escape-Sequenzen.

Dies ist eine historische Verwendung aus den frühen 60er Jahren. Sie können Zeichen eingeben, die Sie sonst nicht über eine Standardtastatur eingeben können. Zum Beispiel, wenn Sie in den Python-Interpreter eingeben:

%Vor%

... du bekommst Ü . In Ihrem Fall haben Sie \b - Repräsentieren Backspace - was Python in der \xhh -Form anzeigt, wobei hh der hexadezimale Wert für 08 ist.% Co_de% ist die Escape-Sequenz für die ASCII-Glocke: try \a mit Ihrem Ton an und Sie sollten einen Piepton hören.

    
Matthew Trevor 09.04.2014 11:33
quelle
7

Die Escape-Sequenz \a , \b entspricht äquivalent zu \x07 , \x08 .

%Vor%

Sie sollten sich \ selbst als Backslash wörtlich entziehen:

%Vor%

oder verwenden Sie Raw-String-Literale:

%Vor%     
falsetru 09.04.2014 11:34
quelle

Tags und Links