再睡一觉 发表于 2020-11-26 19:55:34

title()问题

求助各位大佬

a = " i'm iron man"
a.title()

变成了" I'M Iron Man"
怎么能让M是小写的

Twilight6 发表于 2020-11-26 20:17:27

本帖最后由 qiuyouzhi 于 2020-11-26 20:22 编辑



只靠 title 方法没办法,只能自己想想其他的办法,比如用 replace 替换 'M 为 'm

参考代码:
a = "i'm iron man"
new_str = a.title()
print(new_str.replace("M","m", 1))

笨鸟学飞 发表于 2020-11-26 20:19:37

第1种方法:定义新的类,继承字符串父类,把str.title()方法重写
第2种方法:再写个新函数:
>>> def title2(x):
        '''传入需转换的字符串,把I'M转换为I'm'''
        if "I'M" in x:
                x = x.replace("I'M","I'm")
        return x

>>> a = " i'm iron man"
>>> title2(a.title())
" I'm Iron Man"

冬雪雪冬 发表于 2020-11-26 20:54:07

直接用title肯定不行
a = " i'm iron man"
print(' '.title().join(map(str.capitalize, a.split())))

_2_ 发表于 2020-11-26 21:10:54

要不把 i'm 改成 i am
页: [1]
查看完整版本: title()问题