试图打印印地文和奇怪的输出信

时间:2015-01-05 03:05:13

标签: python

我尝试使用print命令打印印地文字母,然后我看到这个奇怪的\xe0\ ......的东西。但是,如果我不使用打印并使用引号打印它们,那么输出会按预期工作......为什么会这样?

这很好用:

"This is ऋ ॠ ऌ"

然而,对于打印,它不能正常工作:

var = "This is ऋ ॠ ऌ"
print "Again : %r" % var

我得到输出:

Again : This is \xe0\xa4\x8b \xe0\xa5\xa0 \xe0\xa4\x8c'

为什么这样?

注意:

 # -*- coding: utf-8 -*- 
 # is included 

1 个答案:

答案 0 :(得分:4)

%r代表repr,因此它会在您的字符串上调用repr() ...

>>> class Demo:
...   def __repr__(self):
...     return '(repr called)'
...   def __str__(self):
...     return '(str called)'
... 
>>> d = Demo()
>>> repr(d)
'(repr called)'
>>> str(d)
'(str called)'
>>> '%r %s' % (d, d)
'(repr called) (str called)'

......显然你不想要。请改用%s

>>> print '%r' % 'ऋ ॠ ऌ'
'\xe0\xa4\x8b \xe0\xa5\xa0 \xe0\xa4\x8c'
>>> print '%s' % 'ऋ ॠ ऌ'
ऋ ॠ ऌ