我需要在Python中大写一个字符串,而不是将其余的字符串转换为小写字母.这似乎微不足道,但我似乎无法找到一种简单的方法在Python中完成它.
给出这样的字符串:
"i'm Brian, and so's my wife!"
Run Code Online (Sandbox Code Playgroud)
在Perl中,我可以这样做:
ucfirst($string)
Run Code Online (Sandbox Code Playgroud)
这将产生我需要的结果:
I'm Brian, and so's my wife!
Run Code Online (Sandbox Code Playgroud)
或者使用Perl的正则表达式修饰符,我也可以这样做:
$string =~ s/^([a-z])/uc $1/e;
Run Code Online (Sandbox Code Playgroud)
那也行得正常:
> perl -l
$s = "i'm Brian, and so's my wife!";
$s =~ s/^([a-z])/uc $1/e;
print $s;
[Control d to exit]
I'm Brian, and so's my wife!
>
Run Code Online (Sandbox Code Playgroud)
但是在Python中,str.capitalize()方法首先降低整个字符串的大小:
>>> s = "i'm Brian, and so's my wife!"
>>> s.capitalize()
"I'm brian, and so's my wife!"
>>>
Run Code Online (Sandbox Code Playgroud)
虽然title()方法高举每个单词,而不仅仅是第一个单词:
>>> s.title()
"I'M Brian, And So'S My Wife!"
>>>
Run Code Online (Sandbox Code Playgroud)
在Python中是否有任何简单/单行的方式只使用字符串的第一个字母而不低于字符串的其余部分?
ykt*_*too 18
怎么样:
s = "i'm Brian, and so's my wife!"
print s[0].upper() + s[1:]
Run Code Online (Sandbox Code Playgroud)
输出是:
I'm Brian, and so's my wife!
Run Code Online (Sandbox Code Playgroud)
小智 18
这更清洁:
string.title()
Run Code Online (Sandbox Code Playgroud)
只需使用字符串切片:
s[0].upper() + s[1:]
Run Code Online (Sandbox Code Playgroud)
请注意,字符串是不可变的; 这就像capitalize(),返回一个新的字符串.