在 Python 中,实现凯撒密码需要根据用户指定的输入移动字母。然而,一个常见的错误是最终的密文仅反映最后移位的字符而不是整个字符串。
提供的代码面临这个问题。它迭代明文并计算移位的字符,但它更新循环内的单个 cipherText 变量。因此,只有最后一个移位的字符会添加到输出中。
要解决此问题,需要在循环的每次迭代期间将移位的字符连接到新字符串中。这是更正后的代码:
<code class="python">plainText = input("What is your plaintext? ") shift = int(input("What is your shift? ")) def caesar(plainText, shift): cipherText = '' for ch in plainText: if ch.isalpha(): stayInAlphabet = ord(ch) + shift if stayInAlphabet > ord('z'): stayInAlphabet -= 26 finalLetter = chr(stayInAlphabet) cipherText += finalLetter print("Your ciphertext is: ", cipherText) return cipherText caesar(plainText, shift)</code>
现在,cipherText 变量被修改并附加每个移位的字符,确保最终输出包含完整的加密字符串。
以上是为什么我的 Python 中的凯撒密码只返回最后一个移位的字符?的详细内容。更多信息请关注PHP中文网其他相关文章!