Mengapakah Caesar Cipher saya dalam Python hanya mengembalikan watak yang dialih terakhir?

Barbara Streisand
Lepaskan: 2024-10-30 04:21:02
asal
217 orang telah melayarinya

Why does my Caesar Cipher in Python only return the last shifted character?

Fungsi Caesar Cipher dalam Python

Dalam Python, melaksanakan Caesar Cipher memerlukan peralihan huruf berdasarkan input yang ditentukan pengguna. Walau bagaimanapun, ralat biasa ialah teks sifir akhir hanya mencerminkan aksara yang dialih terakhir berbanding keseluruhan rentetan.

Kod yang disediakan menghadapi isu ini. Ia berulang melalui plaintext dan mengira aksara yang dialihkan, tetapi ia mengemas kini pembolehubah cipherText tunggal dalam gelung. Akibatnya, hanya aksara yang dialihkan terakhir ditambahkan pada output.

Untuk menyelesaikan isu ini, adalah perlu untuk menggabungkan aksara yang dialihkan ke dalam rentetan baharu semasa setiap lelaran gelung. Berikut ialah kod yang diperbetulkan:

<code class="python">plainText = input("What is your plaintext? ")
shift = int(input("What is your shift? "))

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

caesar(plainText, shift)</code>
Salin selepas log masuk

Kini, pembolehubah cipherText diubah suai dan ditambah dengan setiap aksara yang dialihkan, memastikan bahawa output akhir mengandungi rentetan yang disulitkan lengkap.

Atas ialah kandungan terperinci Mengapakah Caesar Cipher saya dalam Python hanya mengembalikan watak yang dialih terakhir?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!