【发布时间】:2017-02-17 12:19:27
【问题描述】:
我有这个功能:
#!/usr/bin/python
# coding=UTF-8
def filt(word):
dic = {'á':'a','é':'e','í':'i','ó':'o','ú':'u'}
new = ''
for l in word:
new = new + dic[l]
return new
但是当我为某些字符串(例如“árvore”)调用函数并运行脚本时,我得到了:
Traceback(最近一次调用最后一次):文件“filt.py”,第 11 行,在 print filt("árvore") 文件“filt.py”,第 8 行,在 filt new = new + dic[l] KeyError: '\xc3'
怎么了?
【问题讨论】:
-
对于 unicode 字符串,字符串前面需要
"u":例如:u'á',或new = u''。 -
你用的是哪个版本的python?在 python 3 上,它通过将 dic[l] 更改为 dic.get(l,l) 来流畅地工作
-
好的,你的 print 调用很明显它是 py2。鑫给你答案