擅长:python、mysql、java
<p>首先,您有一个3级嵌套循环,而不是实际实现密码。其次,您没有密码密钥(请参见下面的编辑)。此for循环:</p>
<pre><code>for word in str(answer):
totalwords += 1
for line in check_list:
if line == word:
numright =+ 1
</code></pre>
<p>不应嵌套在此已嵌套的for循环中:</p>
^{pr2}$
<p>另外,循环中<code>i</code>来自<code>0-25</code>的循环中的<code>if i != 0:</code>似乎没有意义。您似乎在尝试匹配字母范围,但是如果您将范围限制在0-26之间,那么实现Caeser密码就不会有太大的运气,因为第一个可打印字符从32(空格)开始,小写<code>'z'</code>是122。<strong>你应该一起删除这个循环</strong>-它会破坏密码。只需使用<code>for symbol in encrypted:</code>循环。在</p>
<p>另外,循环<code>for word in str(answer):</code>正在逐字符计算<code>answer</code><strong>字符</strong>,因此名为<code>totalwords</code>的变量实际上正在计算字符数,这可以通过获取字符串的长度来完成。如果您试图做单词,那么应该对<code>answer</code>变量调用<code>str.split(' ')</code>,假设<code>space</code>字符是删除字符。希望这有帮助。在</p>
<p><strong>编辑</strong></p>
<p>你的钥匙在哪里?(完全正确)。<strong>您的密码的主要问题是,当您需要添加(或减去)密钥量时,您将在每个序数值上添加一个计数器变量。</strong>由于您没有实现密钥移位,因此只需要添加一个值,否则您可以使用密钥数组来实现caeser密码。在</p>