簡體   English   中英

編碼凱撒密碼的問題

[英]problems coding a caesar cipher

我需要為學校的一個項目編寫凱撒密碼,但我遇到了一個無法修復的錯誤......

當我兩次發送同一個字母時,它沒有正確編碼..

有人可以幫忙嗎?

這是代碼:

#This is a ceser code +2

letters = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','S','Y','Z']
message = input('enter a message to eyncrypt in capital letters')
message_incrypt = str()

for x in message:
    if x in letters:
        x = letters.index(x)
        x = letters.pop(x+2)
        message_incrypt = message_incrypt + str(x)
    else:
        print ('you can input only capital letters')


print (message_incrypt)

您正在使用pop 這將從列表中刪除該值。 pop Python 文檔

例如

arr = [1,2,3]
arr.pop(1)

將使arr[1,3]

您可以從索引數組中獲取值

例如

arr = [1,2,3]
val = arr[1]

當你對同一個字母做兩次時,這種誤解最為明顯,因為第一個會修改數組,所以第二個會給出不同的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM