簡體   English   中英

Python轉義序列和字符串操作

[英]Python Escape Sequence and String Manipulation

我有以下兩個變量:

a = chr(92) + 'x11'
b = '\x11'
print 'a is: ' + a
print 'b is: ' + b

這些打印狀態提示的結果:

a is: \x11
b is: <|        # Here I am just showing a representation of the symbol that is printed for b

我該如何使變量a使用chr(92)調用輸出與var b相同的內容? 先感謝您。

其他答案您展示如何讓b給你什么你得到a 如果您想讓a給出您從b得到的結果(如果我沒看錯的話,這就是您的要求),則需要對轉義序列進行解碼:

>>> a
u'\\x11'
>>> a.decode('string-escape')
'\x11'

如果您想要unicode字符串作為結果,也可以使用unicode-escape而不是string-escape

請查閱文檔中有關字符串文字的信息

反斜杠是Python字符串中的轉義字符,因此要在字符串中包含文字反斜杠,您需要使用兩個連續的反斜杠對它們進行轉義。 另外,您可以通過使用原始字符串文字來抑制反斜杠的轉義行為,這可以通過在字符串前面加上r 例如:

  • 轉義反斜杠:

     b = '\\\\x11' 
  • 使用原始字符串文字:

     b = r'\\x11' 

如果我誤解了您的問題,並且b應該是'\\x11'或等效的chr(17) ,但是您只希望它以轉義格式顯示,則可以使用repr()

>>> b = '\x11'
>>> print 'b is: ' + repr(b)
b is: '\x11'

如果您不想使用引號,請使用string_escape編碼

>>> print 'b is: ' + b.encode('string_escape')
b is: \x11

或者得到a是一樣的b ,你可以使用a.decode('string_escape')

\\x11似乎是ASCII中的^Q控制字符的十六進制值:

\021  17  DC1  \x11  ^Q    (Device control 1) (XON) (Default UNIX    START char.)

您需要轉義\\以獲得文字\\x11

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM