元组帮我打印元组(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