Python 中的凱撒密碼函數:加密字串
在Python 中實作凱撒密碼函數時,會出現一個常見問題,即最終的加密文字僅顯示最後移動的字元。要解決此問題,有必要了解導致此行為的問題。
在提供的程式碼中,循環迭代明文中的每個字元。對於字母字符,它根據提供的移位值來移位字符的 ASCII 代碼。但是,每個移位的字元都會附加到循環內名為 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 return cipherText</code>
透過此修改,cipherText 字串初始化一次,並在循環內將所有移位的字元附加到該字串。當函數傳回時,加密字串會按預期包含所有移位字元。
以上是為什麼我的 Python 中的凱撒密碼函數只顯示最後一個移位的字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!