簡體   English   中英

Python unicode字符串文字::'\ u0391'和u'\ u0391'之間的區別是什么

[英]Python unicode string literals :: what's the difference between '\u0391' and u'\u0391'

我使用的是Python 2.7.3。 任何人都可以解釋文字之間的區別:

'\u0391'

和:

u'\u0391'

以及它們在下面的REPL中回顯的不同方式(特別是添加到a1的額外斜杠):

>>> a1='\u0391'
>>> a1
'\\u0391'
>>> type(a1)
<type 'str'>
>>> 
>>> a2=u'\u0391'
>>> a2
u'\u0391'
>>> type(a2)
<type 'unicode'>
>>> 

您只能在unicode字符串文字中使用unicode轉義\ꯍ\ꯍ )。 它們在字節字符串中沒有意義。 Python 2 Unicode文字( u'some text' )是python字節字符串( 'some text' )中不同類型的Python對象。

這就像使用\\t\\T ; 前者在python文字中有意義(它被解釋為制表符),后者只是反斜杠和大寫字母T(兩個字符)。

要幫助理解Unicode和字節字符串之間的區別,請閱讀Python Unicode HOWTO ; 我也可以在Unicode文章上推薦Joel Spolsky

注意:在Python 3中,同樣的差異適用,但'some text'是Unicode字符串文字,而b'some text'b'some text'語法。

與C相反,在Python中,字符串可以用簡單的引號( ' )和雙引號( " )括起來 - 不包括三雙引號"""

因此, '\Α'是只包含字母串\\u0391 當漂亮地打印這個字符串時, \\會通過另一個\\來轉義。

相反,在前面使用u使得字符串被視為Unicode並且評估所有轉義。 因此, u'\Α'被解釋為“包含代碼點0391的Unicode字符串”,它與上述不同。

暫無
暫無

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

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