Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah My Python Caesar Cipher Berfungsi Hanya Memaparkan Watak Terakhir Yang Dipindah?

Mengapakah My Python Caesar Cipher Berfungsi Hanya Memaparkan Watak Terakhir Yang Dipindah?

Susan Sarandon
Susan Sarandonasal
2024-10-31 21:30:29685semak imbas

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

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:

  • Kami mengisytiharkan cipherText di luar gelung, memulakannya sebagai rentetan kosong.
  • Di dalam gelung, selepas mengira Huruf akhir, kami tambahkan ia ke rentetan cipherText.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn