>백엔드 개발 >파이썬 튜토리얼 >내 Python Caesar 암호화 기능이 마지막으로 이동된 문자만 표시하는 이유는 무엇입니까?

내 Python Caesar 암호화 기능이 마지막으로 이동된 문자만 표시하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-31 21:30:29798검색

Why Does My Python Caesar Cipher Function Only Display the Last Shifted Character?

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>

작동 방식은 다음과 같습니다.

  • 루프 외부에서 cipherText를 선언하고 이를 빈 문자열로 초기화합니다.
  • 루프 내부에서 finalLetter를 계산한 후 다음을 추가합니다. cipherText 문자열에 추가합니다.

이 업데이트된 코드는 이동된 모든 문자를 올바르게 누적하여 원하는 암호화된 문자열을 생성합니다.

위 내용은 내 Python Caesar 암호화 기능이 마지막으로 이동된 문자만 표시하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.