Python의 Caesar Cipher 함수: 문자 이동 문제 해결
Python에서 Caesar Cipher 함수를 만들려고 할 때 반복되는 문제가 발생합니다. 전체 암호화된 문자열이 아닌 마지막으로 이동한 문자만 표시됩니다. 이 문제를 해결하기 위해 코드를 자세히 조사하고 근본 원인을 찾아냅니다.
제공된 코드는 Caesar Cipher 원칙을 준수합니다. 즉, 일반 텍스트와 시프트 값을 허용하고 각 문자를 반복하여 필요한 시프트를 적용합니다. 그러나 중요한 단계가 누락되었습니다. 즉, 암호화된 문자를 저장할 새 문자열을 생성하는 것입니다.
함수 내에서 cipherText의 초기화는 루프 외부에서 발생해야 합니다. 현재로서는 cipherText가 각 반복 내에서 다시 초기화되어 이전 암호화 문자를 효과적으로 덮어쓰고 마지막으로 이동된 문자만 표시됩니다.
이 문제를 해결하기 위해 다음과 같이 코드를 수정합니다.
<code class="python">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</code>
작동 방식은 다음과 같습니다.
이 업데이트된 코드는 이동된 모든 문자를 올바르게 누적하여 원하는 암호화된 문자열을 생성합니다.
위 내용은 내 Python Caesar 암호화 기능이 마지막으로 이동된 문자만 표시하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!