所以我有一个字符串:
天使爱美丽
以字节为单位 b'ame\xcc\x81lie'
在utf-8中,角色结合了前一个角色的重音符号http://www.fileformat.info/info/unicode/char/0301/index.htm
u'ame\u0301lie'
当我这样做:'amélie'.title()在那个字符串上,我得到'AméLie',这对我来说毫无意义.
我知道我可以做一个解决方法,但这是预期的行为还是一个错误?我希望"l"不会被大写.
另一个实验:
In [1]: [ord(c) for c in 'ame?lie'.title()]
Out[1]: [65, 109, 101, 769, 76, 105, 101]
In [2]: [ord(c) for c in 'ame?lie']
Out[2]: [97, 109, 101, 769, 108, 105, 101]
Run Code Online (Sandbox Code Playgroud) 我试图想出一些可以为一串单词“加标题”的东西。它应该将字符串中的所有单词大写,除非给定的单词作为参数不大写。但无论如何,第一个单词仍会大写。我知道如何将每个单词大写,但我不知道如何不将例外情况大写。有点迷失从哪里开始,在谷歌上找不到太多。
def titlemaker(title, exceptions):
return ' '.join(x[0].upper() + x[1:] for x in title.split(' '))
Run Code Online (Sandbox Code Playgroud)
或者
return title.title()
Run Code Online (Sandbox Code Playgroud)
但我发现撇号后的字母会大写,所以我认为我不应该使用它。关于我应该如何考虑例外情况的任何帮助都会很好
示例: titlemaker('a man and his dogs', 'a and') 应返回 'A Man and His Dog'