Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

รหัสซีซาร์ (Caesar Cipher) ใน Python

ภาพรวม

Caesar Cipher เป็นรหัสลับแบบเลื่อนตัวอักษร (shift cipher) เลื่อนแต่ละตัวอักษร k ตำแหน่งในอัลฟาเบท วนรอบ (wrap around) เมื่อเกิน z

ตัวอย่าง

อินพุต: "hello", k = 3

h→k, e→h, l→o, l→o, o→r → "khoor"

โค้ด Python

class Solution:
    def solve(self, s, k):
        def shift(c):
            i = ord(c) - ord('a')
            i += k
            i %= 26
            return chr(ord('a') + i)
        return "".join(map(shift, s))

ob = Solution()
print(ob.solve("hello", 3))

อธิบาย

  1. ord(c) - ord('a'): แปลงตัวอักษรเป็น 0-25
  2. i += k: เลื่อน k ตำแหน่ง
  3. i %= 26: wrap around (modulo 26)
  4. chr(ord('a') + i): แปลงกลับเป็นตัวอักษร

ขยาย: รองรับตัวใหญ่-เล็ก และ non-alphabet

def caesar_cipher(text, k):
    result = []
    for c in text:
        if c.islower():
            result.append(chr((ord(c) - ord('a') + k) % 26 + ord('a')))
        elif c.isupper():
            result.append(chr((ord(c) - ord('A') + k) % 26 + ord('A')))
        else:
            result.append(c)
    return "".join(result)

ผลลัพธ์

khoor