我是巨蟒新手。
为什么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代码组成的字节序列。

10-07 12:08