将字符串的第一个字母大写,而不触及其他字母
Posted
技术标签:
【中文标题】将字符串的第一个字母大写,而不触及其他字母【英文标题】:Capitalize the first letter of a string without touching the others 【发布时间】:2015-10-24 09:34:40 【问题描述】:我想将字符串的第一个字母大写,但保留其余部分
我有什么: 赛车
我想要什么: 赛车
【问题讨论】:
【参考方案1】:这已经说明了,但我决定展示它。
使用capitalize()
无需额外工作即可完成您想要的工作。例如,
def Cap1(string):
# will not error if empty, and only does the first letter of the first word.
return string.capitalize()
如果您有多个单词,使用title()
可能需要额外的工作。例如,
假设您的字符串是:“我想要披萨”
def cap2(string):
return string.title()
输出将是:“我想要披萨”
您可以使用upper()
的另一种方式是:
def cap3(string):
if not len(string) == 0:
return string[0].upper()
【讨论】:
这个答案具有误导性:正如 OP 所示,capitalize()
不仅将第一个符号设为大写,而且将其余符号设为小写【参考方案2】:
你应该像 Martijn 建议的那样做,但是为了让你的函数更健壮,切到第一个字母,这样你就不会在空字符串上出错:
>>> rc = 'racEcar'
>>> newrc = rc[:1].upper() + rc[1:]
>>> newrc
'RacEcar'
因此定义一个执行此操作的函数:
def capfirst(s):
return s[:1].upper() + s[1:]
然后:
>>> capfirst(rc)
'RacEcar'
>>> capfirst('')
''
【讨论】:
除非你想要如果字符串为空的话当然会出错。 如果这确实是一个错误条件,那么当然,但我喜欢编码到Robustness Principle【参考方案3】:然后只需将str.upper()
的第一个字母大写,其余部分不变
string[0].upper() + string[1:]
演示:
>>> string = 'racEcar'
>>> string[0].upper() + string[1:]
'RacEcar'
【讨论】:
以上是关于将字符串的第一个字母大写,而不触及其他字母的主要内容,如果未能解决你的问题,请参考以下文章