无法在Python 3.1中使用unichr
我一直在翻阅《Python Cookbook(第2版)》,想学习如何处理字符串和字符。
我想试着把一个数字转换成它的Unicode对应值。所以我尝试使用一个叫做unichr的内置函数,书里是这么说的:
>>> print repr(unichr(8224))
... 然后会输出:
u'\u2020'
但是,代码出错了。我以为是和print有关(因为Python 3用print()而不是print ""),但这样也没解决问题。我尝试了几种不同的代码,结果还是不行。最后,我只输入了一行简单的代码:
unichr(10000)
让我惊讶的是,不管我在上面的函数里输入什么值,这个错误信息总是弹出来:
NameError: name 'unichr' is not defined
这可能是什么问题呢?我是不是需要导入某个特定的模块?
5 个回答
7
如果你需要同时在 Python 2 和 Python 3 中运行代码,可以使用这种通用的写法(未使用的写法会指向新的写法)。
try:
unichr
except NameError:
unichr = chr
24
在Python 3中,普通字符串和Unicode字符串没有区别了。现在的区别只在于Unicode字符串和二进制数据之间。因此,开发者们最终把unichr
这个函数去掉了,取而代之的是一个通用的chr
函数,它现在的功能和以前的unichr
是一样的。你可以在这里查看相关文档。
111
在Python 3中,你只需要使用 chr
这个函数就可以了:
>>> chr(10000)
'✐'