Python 中的凱撒密碼函數:加密字串
在Python 中實作凱撒密碼函數時,會出現一個常見問題,即最終的加密文字僅顯示最後移動的字元。要解決此問題,有必要了解導致此行為的問題。
在提供的程式碼中,循環迭代明文中的每個字元。對於字母字符,它根據提供的移位值來移位字符的 ASCII 代碼。但是,每個移位的字元都會附加到循環內名為 cipherText 的空字串。因此,只有最後一個字元顯示為加密文字。
要修正此問題,必須在循環內建構密文,並在處理完所有字元後傳回密文。這可以透過修改程式碼來實現,如下:
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
透過此修改,cipherText 字串會初始化一次,並且所有移位的字元都會在循環內附加到該字串。當函數傳回時,加密字串會按預期包含所有移位字元。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3