2017-02-11 58 views
-1

我需要在學校項目代碼愷撒密碼代碼,我遇到了,我不能修復bug ......問題編碼密碼的凱撒

當我安德同一封信兩次不代碼時正確..

任何人都可以幫忙嗎?

這裏是代碼:

#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) 

回答

0

您正在使用pop。這將從列表中刪除值。 ( Python docs on pop

例如

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

會讓arr[1,3]

用戶可於索引陣列

例如獲得的價值

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

這種誤解是最引人注目的,當你做同樣的字母兩次,是因爲第一個會修改數組,所以第二個會給出不同的結果。