您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在此python代码中,产生什么“ TypeError字符映射必须返回整数…”?

在此python代码中,产生什么“ TypeError字符映射必须返回整数…”?

可能是因为文本是作为unicode输入的:

>>> def rot13(st):
...     import string
...     tab1 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
...     tab2 = 'nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM'
...     tab = string.maketrans(tab1, tab2)
...     return st.translate(tab)
... 
>>> rot13('test')
'grfg'
>>> rot13(u'test')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 6, in rot13
TypeError: character mapping must return integer, None or unicode
>>>

这个问题涵盖了您的需求:

如果您确定unicode字符串并不重要,我想您可以:

return str(st).translate(tab)
python 2022/1/1 18:42:07 有497人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶