元組幫我打印元組(u'1S²')
我得到的1S²
需要與蟒蛇
但是所預測的輸出,當我打印的元組(u'1S²',u'2S¹')
我得到的輸出(u'1S\xb2', u'2S\xb9')
。
這是爲什麼?我能做些什麼呢?
另外,如何獲取元組中的項目數?
元組幫我打印元組(u'1S²')
我得到的1S²
需要與蟒蛇
但是所預測的輸出,當我打印的元組(u'1S²',u'2S¹')
我得到的輸出(u'1S\xb2', u'2S\xb9')
。
這是爲什麼?我能做些什麼呢?
另外,如何獲取元組中的項目數?
表達式(u'1S²')
不是tuple
,這是一個unicode
的值。這種方式使用Python編寫1元組:(u'1S²',)
。
print value
聲明實際上打印了str(value)
。如果你需要輸出一些unicode
字符串,你應該使用這樣的事情:
print u' '.join((u'1S²',u'2S¹'))
雖然有可能與字符編碼的問題。如果你知道你的控制檯編碼,可以編碼您unicode
值手動str
:
ENCODING = 'utf-8'
print u' '.join((u'1S²',u'2S¹')).encode(ENCODING)
的元組,列表,字符串和其他序列iterms可以使用len
功能獲得的數量。
你有什麼平臺和Python版本?我沒有看到這種行爲。我總是得到\x
轉義序列與Python 2.6:
Python 2.6.5 (r265:79063, Apr 26 2010, 10:14:53)
>>> (u'1S²')
u'1S\xb2'
>>> (u'1S²',)
(u'1S\xb2',)
>>> (u'1S²',u'1S¹')
(u'1S\xb2', u'1S\xb9')
作爲一個方面說明,(u'1S²')
是不是一個元組,它只是一個與它周圍的括號字符串。之後需要用逗號來創建單個元素元組:(u'1S²',)
。
至於項目的數量,使用len
:
>>> len((u'1S²',u'1S¹'))
2
(u'1S²')
不是一個元組。 (u'1S²',)
是一個包含u'1S²'的元組。 len((u'1S²',))
返回元組的長度,即,1.
也,打印變量時,當心有2種類型的輸出:
repr(the_object)
如果第二不availlable,第一被使用。與字符串不同,元組沒有文本表示,因此程序員友好的表示形式用於表示元組及其內容。
你的第一個例子(u'1S²')實際上並不是一個元組,它是一個unicode字符串!
>>> t = (u'1S²')
>>> type(t)
<type 'unicode'>
>>> print t
1S²
逗號是什麼使得它一個元組:
>>> t = (u'1S²',)
>>> type(t)
<type 'tuple'>
>>> print t
(u'1S\xb2',)
發生了什麼事,當你打印一個元組,你會得到它的每一個部件的再版()是。要打印組件,請按索引單獨解決它們。你可以得到一個元組與LEN(長度):
>>> print t[0]
1S²
>>> len(t)
1
我看到在Linux上使用v2.6.5相同的行爲。單個元素元組的註釋+1。 – Johnsyweb 2010-09-09 20:25:36