<p>在继续之前,您还需要注意一些其他错误。在</p>
<p><strong>第一个问题是您的<code>if</code>语句。</strong></p>
<p>看看这个例子:</p>
<pre><code>string = "foo"
if string == "foo" or "bar":
dosomething()
</code></pre>
<p>在人眼看来,这是正确的,但计算机的看法不同。将条件与<code>and</code>或<code>or</code>组合时,计算机将从左到右检查条件。在这种情况下,计算机会看到:</p>
<blockquote>
<blockquote>
<p>If string is equal to foo or if bar</p>
</blockquote>
</blockquote>
<p>第二个条件,在<code>or</code>后面,与说<code>if bar == True:</code>条是字符串相同,任何字符串都是<em>总是</em>真的,因此<code>dosomething()</code>函数将<em>始终</em>执行。通过将上述示例更改为:</p>
^{pr2}$
<p>现在,计算机将执行它:</p>
<blockquote>
<blockquote>
<p>If string is equal to foo or if string is equal to bar</p>
</blockquote>
</blockquote>
<p><strong>简化代码</strong></p>
<p>我想指出的第二件事是编程中的首要规则之一:<em>如果你多次输入同一个东西,可能有更好的方法</em></p>
<p>在您的代码中,设想用<code>if rs[9] == 'A' or rs[9] == 'B'</code>替换已经很长的条件,等等,它将变得非常长和混乱。制作一个字母表的列表,然后对照列表检查变量,会简单得多。例如:</p>
<pre><code>alpha_list = ['A','B','C'] # etc through 'Z'
if rs[0] in alpha_list:
dosomething()
</code></pre>
<p><code>in</code>关键字告诉Python检查<code>rs[0]</code>的值是否在<a href="http://www.tutorialspoint.com/python/python_lists.htm" rel="nofollow">list</a>字母列表中,或者换句话说,如果它是字母表中的字母。现在,您可以用一个更短、更干净的解决方案替换所有这些冗长而混乱的条件:)</p>
<p>正如aIKid所指出的,字符串也是iterable,因此可以用所有字母的字符串(<code>alphabet = "ABCDEF"</code>…)来替换列表。任何一个都可以。在</p>
<p>至于你问题的最初答案,<strong>aIKid</strong>回答得很完美,我只是想试着用一些其他的方法来帮助你提高!在</p>