[英]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中,字符串可以用簡單的引號( '
)和雙引號( "
)括起來 - 不包括三雙引號"""
。
因此, '\Α'
是只包含字母串\\
, u
, 0
, 3
, 9
和1
。 當漂亮地打印這個字符串時, \\
會通過另一個\\
來轉義。
相反,在前面使用u
使得字符串被視為Unicode並且評估所有轉義。 因此, u'\Α'
被解釋為“包含代碼點0391
的Unicode字符串”,它與上述不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.