擅长:python、mysql、java
<p>它爆炸了,大概是因为没有索引空字符串。</p>
<pre><code>>>> ''[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
</code></pre>
<p>正如已经指出的,分割字符串来调用单个字母上的<code>str.upper()</code>可以被<code>str.capitalize()</code>所取代。</p>
<p>此外,如果您经常遇到这样一种情况,即它将被传递为空字符串,那么您可以通过以下几种方式处理它:</p>
<pre><code>…#whatever previous code comes before your function
if my_string:
Cap(my_string) #or str.capitalize, or…
</code></pre>
<p><code>if my_string</code>或多或少类似于<code>if len(my_string) > 0</code>。</p>
<p>而且总是有旧的<code>try/except</code>,尽管我认为您应该首先考虑旧的重构:</p>
<pre><code>#your previous code, leading us to here…
try:
Cap(my_string)
except IndexError:
pass
</code></pre>
<p>我不会为一个字符串编制索引来调用单个字符上的<code>str.upper()</code>,但这样做可能有一组独特的原因。但是,如果所有事物都相等,<code>str.capitalize()</code>则执行相同的功能。</p>