我是Python新手.

为什么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

"必须是字节对象"是什么意思?如果可能的话,有人能帮我发布一个Python3.1的工作代码吗?

推荐答案

字符串是not字节.

这是Python 3中的一个简单定义.

字符串是Unicode(不是字节)Unicode字符串使用"..."'...'

字节是字节(不是字符串)字节字符串使用b"..."b'...'.

使用b"aeiou"创建由特定字母的ASCII码组成的字节序列.

Python-3.x相关问答推荐

将strid()映射到Pandas DataFrame中的字符串不会更改NaN条目,但仍然声称它们不同?

如何从枚举中获取某个值?

如何将多个字典合并到一个列中,并为不同的行使用相同的键

将两列的乘积连续添加到一列的累积和中

在REPLACE INTO中引用变量会抛出sqlite3.OperationalError

移动所有列的数据帧值以使其单调递增

在不改变 python 中原始数组顺序的情况下,对多维字符串数组进行降序排序?

使用 multiprocessing 处理图像

单击图形时 plotly graph_objects 持久性数据

如何对具有多个列值的 pandas 数据框进行数据透视/数据透视表

如何在 Python 中 cv2 的窗口标题上动态更新 FPS

在判断列表变量时如何判断特定列的值并分配加权整数值

如何从左到右解包元组?

PySpark python 问题:Py4JJavaError: An error occurred while calling o48.showString

如何在不使用 @hydra.main() 的情况下获取 Hydra 配置

如何将 cv2.imread 匹配到 keras image.img_load 输出

try 在 Windows 10 高 DPI 显示器上解决模糊的 tkinter 文本 + zoom ,但担心我的方法不是 Pythonic 或不安全

混合全局/参数和名为top的函数的奇怪python行为

如何正确创建自定义文本编解码器?

警告:请使用 tensorflow/models 中的官方/mnist/dataset.py 等替代方案