关于python:将字符串的第一个字母大写,而不触及其他字母

Capitalize the first letter of a string without touching the others

我想把一根绳子的第一个字母大写,但把其余的留着

我拥有的:赛车

我想要的:赛车


您应该像Martijn建议的那样做,但是为了使您的函数更健壮,请切掉第一个字母,这样您就不会在空字符串上出错:

1
2
3
4
>>> rc = 'racEcar'
>>> newrc = rc[:1].upper() + rc[1:]
>>> newrc
'RacEcar'

因此,定义一个这样做的函数:

1
2
def capfirst(s):
    return s[:1].upper() + s[1:]

然后:

1
2
3
4
>>> capfirst(rc)
'RacEcar'
>>> capfirst('')
''


然后只需将第一个字母大写与str.upper()并将其余的字母连接起来

1
string[0].upper() + string[1:]

演示:

1
2
3
>>> string = 'racEcar'
>>> string[0].upper() + string[1:]
'RacEcar'


这已经说过了,但我决定展示一下。

使用capitalize()可以做你想做的事情,而不需要额外的工作。例如,

1
2
3
def Cap1(string):
    # will not error if empty, and only does the first letter of the first word.
    return string.capitalize()

如果你有多个单词,使用title()可能需要额外的工作。例如,

假设你的线是:"我要比萨"

1
2
def cap2(string):
    return string.title()

输出结果是:"我要比萨饼"

使用upper()的另一种方法是:

1
2
3
def cap3(string):
    if not len(string) == 0:
        return string[0].upper()