可能是因为文本是作为unipre输入的:
>>> 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 rot13TypeError: character mapping must return integer, None or unipre>>>这个问题涵盖了您的需求:
- 如何获取str.translate以使用Unipre字符串?
如果您确定unipre字符串并不重要,我想您可以:
return str(st).translate(tab)



