擅长:python、mysql、java
<pre><code>>>> s = 'macGregor'
>>> s.capitalize()
'Macgregor'
>>> s[:1].upper() + s[1:]
'MacGregor'
>>> s = ''
>>> s[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
>>> s[:1].upper() + s[1:]
''
</code></pre>
<hr/>
<blockquote>
<p>Why does s[1:] not bail on an empty string? </p>
</blockquote>
<p><a href="http://docs.python.org/2/tutorial/introduction.html#strings" rel="nofollow noreferrer">Tutorial on strings</a>说:</p>
<blockquote>
<p>Degenerate slice indices are handled gracefully: an index that is too
large is replaced by the string size, an upper bound smaller than the
lower bound returns an empty string.</p>
</blockquote>
<p>另请参见<a href="https://stackoverflow.com/q/509211/4279">Python's slice notation</a>。</p>