Rumah > Artikel > pembangunan bahagian belakang > Mengapakah My Python Caesar Cipher Berfungsi Hanya Memaparkan Watak Terakhir Yang Dipindah?
Fungsi Caesar Cipher dalam Python: Menyelesaikan Masalah Peralihan Watak
Dalam cuba mencipta fungsi Caesar Cipher dalam Python, pengguna menghadapi isu yang berulang di mana hanya aksara terakhir yang dialihkan dipaparkan, bukannya keseluruhan rentetan cipher. Untuk menangani perkara ini, kami menyelidiki kod tersebut dan menentukan punca puncanya.
Kod yang disediakan mematuhi prinsip Caesar Cipher: ia menerima teks biasa dan nilai anjakan, dan ia berulang melalui setiap aksara, menggunakan anjakan yang diperlukan. Walau bagaimanapun, terdapat satu langkah penting yang tiada: mencipta rentetan baharu untuk menyimpan aksara yang disifir.
Dalam fungsi, pemulaan cipherText harus berlaku di luar gelung. Seperti sedia ada, cipherText dimulakan semula dalam setiap lelaran, dengan berkesan menimpa aksara cipher sebelumnya dan menghasilkan paparan hanya aksara terakhir yang dialihkan.
Untuk membetulkan isu ini, kami 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 print("Your ciphertext is: ", cipherText) return cipherText</code>
Begini cara ia berfungsi:
Kod yang dikemas kini ini mengumpulkan semua aksara yang dialihkan dengan betul, menghasilkan rentetan sifir yang dikehendaki.
Atas ialah kandungan terperinci Mengapakah My Python Caesar Cipher Berfungsi Hanya Memaparkan Watak Terakhir Yang Dipindah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!