因为我是法国人,我试着做一个小函数,可以在一个国家名称之前加上好的定冠词。除了少数几个以变音符号开头的国家外,我没有问题。我的代码是:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def article(nomPays):
voyelles = ['A','E','É','I','O','U','Y']
if nomPays == 'Mexique':
return 'du'
elif nomPays[0] in voyelles:
return 'de l\''
elif nomPays[-1] == 'e':#signe négatif pour compter à partir de la dernière lettre
return 'de la'
else:
return 'du'
print article('Érythrée')
如果我输入Allemagne而不是赤道,那么行为是正确的:它返回'del'。但是èrythreée返回'de la'。这意味着我的函数无法识别voyelles列表中的字符É。在
我能解释为什么有人能解决这个问题?在
在^{之前添加
u
:示例:
^{pr2}$问题是在python2中使用}将给出字符串的第一个字节,而不是第一个字符。在单字节编码中,这不是一个问题,但是对于像UTF-8这样的多字节编码,“赤道”的第一个字节是一个前导字节,而不是整个字符“а”。在
str
,其中str
是一个字节序列,因此{您需要更改为使用
unicode
来获取第一个字符:实际上,使用
^{pr2}$startswith
可能更容易:或者,您可以在整个应用程序中使用
unicode
,或者切换到python3,在那里所有这些都处理得更好。在它是字节字符串,而不是unicode字符串,因此字符串的第一个元素是:
这是因为UT8编码。在
相关问题 更多 >
编程相关推荐