擅长:python、mysql、java
<p>你在做一些坏事</p>
<p>错误的来源是<code>i</code>是通过从“数字字符串”中提取一个数字,将其加倍并将其转换回字符串(因此<code>"8"</code>变成<code>"16"</code>)而构建的</p>
<p>然后尝试访问<code>i[1]</code>—如果<code>i</code>只有1个字符长,则超出范围</p>
<p>但是还有更多的问题-在<code>for</code>循环中重用名称<code>i</code>,使用<code>eval()</code>(shubder!)其中<code>int()</code>就可以了,使用<code>range()</code>而不是切片来迭代字符串</p>
<p>例如</p>
<pre><code>for i in range(len(num)-2,0,-2):
</code></pre>
<p>应该是</p>
<pre><code>for digit in num[-2:0:-2]:
</code></pre>