擅长:python、mysql、java
<p>出现这个问题的原因是,当您到达“<code>(ord(" ") == 32)</code>”时,if条件得到满足,因此您得到的是9而不是空格。你知道吗</p>
<p>一个非常简单的解决方案:
将if改为:<br/>
<code>if charvalue < 97 and charvalue != ord(" ") - key:</code></p>
<p>和elif to:<br/>
<code>elif charvalue == ord(" ") - key</code></p>
<p>之所以使用<code>- key</code>部分,是因为在循环中将charvalue设置为<code>ord(i) - key</code>。在减去键之后,您需要检查每个大小写,这意味着在您的情况下,如果<code>charvalue == 31</code>(32-1),您应该检查空格</p>