การอ้างอิงดัชนีและการต่อสตริง
มาดูหนึ่งในเทคนิคการเข้ารหัสที่เก่าแก่ที่สุดที่รู้จักกัน นั่นคือ Caesar cipher ซึ่งทำงานโดยการเลื่อนตัวอักษรแต่ละตัวในข้อความไปตามจำนวนตำแหน่งที่กำหนด ตัวอย่างเช่น เมื่อใช้ตัวอักษรภาษาอังกฤษและเลื่อน 1 ตำแหน่ง 'xyz' จะกลายเป็น 'yza' และในทางกลับกันสำหรับการถอดรหัส สังเกตว่า 'z' จะกลายเป็น 'a' ในกรณีนี้
ดังนั้น การเข้ารหัส/ถอดรหัสต้องการอาร์กิวเมนต์สองตัว ได้แก่ ข้อความและจำนวนเต็มที่เป็นคีย์สำหรับการเลื่อน (key = 1 สำหรับตัวอย่างข้างต้น)
โจทย์คือให้สร้างฟังก์ชันเข้ารหัสโดยใช้ตัวอักษรภาษาอังกฤษที่เก็บอยู่ในสตริง alphabet
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ฝึกทำโจทย์สัมภาษณ์งานเขียนโค้ดด้วย Python
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def encrypt(text, key):
encrypted_text = ''
# Fill in the blanks to create an encrypted text
for char in text.lower():
idx = (alphabet.____(____) + ____) % len(____)
encrypted_text = encrypted_text + alphabet[idx]
return encrypted_text
# Check the encryption function with the shift equals to 10
print(____("datacamp", ____))