Fungsi Caesar Cipher dalam Python: Rentetan Disulitkan
Apabila melaksanakan fungsi Caesar Cipher dalam Python, isu biasa timbul apabila teks yang disulitkan terakhir hanya memaparkan aksara yang dialihkan terakhir. Untuk menyelesaikan masalah ini, anda perlu memahami isu yang menyebabkan gelagat ini.
Dalam kod yang disediakan, gelung berulang pada setiap aksara dalam teks biasa. Untuk aksara abjad, ia mengalihkan kod ASCII aksara berdasarkan nilai anjakan yang disediakan. Walau bagaimanapun, setiap aksara yang dialihkan dilampirkan pada rentetan kosong bernama cipherText dalam gelung. Akibatnya, hanya aksara terakhir dipaparkan sebagai teks yang disulitkan.
Untuk membetulkan isu ini, teks sifir mesti dibina dalam gelung dan dikembalikan setelah semua aksara telah diproses. Ini boleh dicapai dengan mengubah suai kod seperti berikut:
<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>
Dengan pengubahsuaian ini, rentetan cipherText dimulakan sekali dan semua aksara yang dialihkan dilampirkan padanya dalam gelung. Apabila fungsi kembali, rentetan yang disulitkan mengandungi semua aksara yang dialihkan, seperti yang dimaksudkan.
Atas ialah kandungan terperinci Mengapa Caesar Cipher Saya Berfungsi dalam Python Hanya Memaparkan Watak Terakhir yang Dipindah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!