[英]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.