擅长:python、mysql、java
<p>我想你为什么会被难住的部分原因是你使用了无意义的变量名。您很好地描述了这个问题并用名称来调用它,但是您的函数甚至没有使用这个名称。</p>
<p>如果你认为你以“看”开头的字符串,而以“说”结尾的字符串,那就是一个开始。<code>result</code>可能很好,但是<code>a</code>和<code>k</code>让你困惑。<code>last</code>我认为是误导性的,因为它可以表示前一个或最后一个。</p>
<p>另外,Python的<code>for</code>实际上是<code>foreach</code>,这是有原因的——在“look”中每个字符一个接一个,所以在循环中显式地执行它。</p>
<pre><code>def looksay(look):
look = str(look)
prev, count, say = look[0], 1, ''
for char in look[1:]:
if char == prev:
count += 1
continue
say += str(count) + prev
prev = char
count = 1
return say + str(count) + prev
</code></pre>
<p>间距不那么重要,但Python确实有一个<a href="http://www.python.org/dev/peps/pep-0008/" rel="nofollow">standard coding style</a>,而且它确实有助于使用它的可读性。你花在分析代码上的时间越少,你对问题的关注就越多。</p>