擅长:python、mysql、java
<p>如果你是说第一个非空白字符,我会用这样的。。。</p>
<pre><code>>>> a=' Hello world'
>>> len(a) - len(a.lstrip())
3
</code></pre>
<p>另一个有趣的是:</p>
<pre><code>>>> sum(1 for _ in itertools.takewhile(str.isspace,a))
3
</code></pre>
<p>但我敢打赌,第一个版本速度更快,因为它基本上只在C中执行这个循环——当然,完成后它需要构造一个新字符串,但这基本上是免费的。</p>
<hr/>
<p>为完整起见,如果字符串为空或完全由空白组成,则这两个字符串都将返回<code>len(a)</code>(如果尝试用它编制索引,则无效…)</p>
<pre><code>>>> a = "foobar"
>>> a[len(a)]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
</code></pre>