Python에서 Caesar Cipher를 구현하려면 사용자가 지정한 입력에 따라 문자를 이동해야 합니다. 그러나 일반적인 오류는 최종 암호 텍스트가 전체 문자열이 아닌 마지막으로 이동한 문자만 반영한다는 것입니다.
제공된 코드는 이 문제에 직면합니다. 일반 텍스트를 반복하고 이동된 문자를 계산하지만 루프 내에서 단일 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의 Caesar Cipher가 마지막으로 이동된 문자만 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!