擅长:python、mysql、java
<p>既然你正在读一本教科书,我想你不只是想要答案,这里有一个提示。你在重复(循环)错误的事情。你应该在<code>user_name</code>上循环,而不是<code>alphabet</code>。你知道吗</p>
<p><strong>更新</strong>。如果你想要一个很好的“Pythonic”解决方案,这是一种方法:</p>
<pre><code>user_name = raw_input('Please enter your name ')
print sum(ord(letter.upper())-64 for letter in user_name)
</code></pre>
<p>解释:</p>
<ol>
<li><code>ord</code>返回字符的ASCII码,例如<code>65</code>的<code>'A'</code></li>
<li>A-Z的ASCII码是65到90,顺序正好</li>
<li>减去64得到<code>1</code>表示<code>A</code>,<code>2</code>表示<code>B</code>,依此类推</li>
<li><code>sum</code>是一个内置函数,它只执行您所期望的操作</li>
<li><code>sum</code>的参数是一个表达式,它的计算结果是一个数字序列,<code>user_name</code>中的每个字母对应一个</li>
</ol>