擅长:python、mysql、java
<p>因为除了最后一行之外,其他行都包含换行符。你知道吗</p>
<p>尝试以下操作(删除尾随空格):</p>
<pre><code>with open("Test.txt", 'r') as f:
for line in f:
a, b = getStartEnd(line.rstrip())
print a, b
</code></pre>
<p>顺便说一句,下面代码中的<code>( char != end )</code>总是False。(与<code>( char != start)</code>相同)</p>
<pre><code>for char in reversed(sequence):
if char == end:
endCount += 1
if ( char != end): # always False because char == end
break
</code></pre>
<p>你是说这个吗?你知道吗</p>
<pre><code>for char in reversed(sequence):
if char == end:
endCount += 1
else:
break
</code></pre>
<p>使用<a href="http://docs.python.org/2/library/itertools.html#itertools.takewhile" rel="nofollow">^{<cd3>}</a>如何:</p>
<pre><code>import itertools
def getStartEnd(sequence):
start = sequence[0]
end = sequence[-1]
start_count = sum(1 for _ in itertools.takewhile(lambda ch: ch == start, sequence))
end_count = sum(1 for _ in itertools.takewhile(lambda ch: ch == end, reversed(sequence)))
return start_count, end_count
</code></pre>