我是巨蟒新手。
为什么this在python 3.1中不起作用?
from string import maketrans # Required to call maketrans function.
intab = "aeiou"
outtab = "12345"
trantab = maketrans(intab, outtab)
str = "this is string example....wow!!!";
print str.translate(trantab);
当我执行上述代码时,我会得到以下结果:
Traceback (most recent call last):
File "<pyshell#119>", line 1, in <module>
transtab = maketrans(intab, outtab)
File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/string.py", line 60, in maketrans
raise TypeError("maketrans arguments must be bytes objects")
TypeError: maketrans arguments must be bytes objects
“必须是字节对象”是什么意思?如果可能的话,有人能帮忙发布一个python 3.1的工作代码吗?
最佳答案
字符串不是字节。
这是Python3中的一个简单定义。
字符串是Unicode(不是字节)Unicode字符串使用"..."
或'...'
字节是字节(不是字符串)字节字符串使用b"..."
或b'...'
。
使用b"aeiou"
为某些字母创建由ASCII代码组成的字节序列。