2013-02-28 50 views
0

基本上標題解釋了這個問題,我正在寫一個基本的解密程序,用戶輸入一個已經加密的數字(指紋)和解密密鑰,然後計算出原來的3個字母的字符串。我不斷得到一個IndedxError。關於我要去哪裏的任何想法都是錯誤的?不斷收到「IndexError:列表索引超出範圍」的想法?

fingerprint = input("Enter fingerprint: ") 
key = input("Enter decryption key: ") 

stringList = [] 

firstchar = (fingerprint - key) % 33 
secondchar = fingerprint - ord(stringList[0])/33 - key % 33 
thirdchar = fingerprint - ord(stringList[1])/33 - key % 33 

if firstchar == 0 or secondchar == 0 or thirdchar == 0 : #If any of firstchar, secondchar or thirdchar == 0 then add "c" to the list and so on. 
stringList.append("c") 
elif firstchar == 1 or secondchar == 1 or thirdchar == 1 : 
    stringList.append("d") 
elif firstchar == 2 or secondchar == 2 or thirdchar == 2 : 
    stringList.append("e") 
elif firstchar == 3 or secondchar == 3 or thirdchar == 3 : 
    stringList.append("f") 
elif firstchar == 4 or secondchar == 4 or thirdchar == 4 : 
    stringList.append("g") 
elif firstchar == 5 or secondchar == 5 or thirdchar == 5 : 
    stringList.append("h") 
elif firstchar == 6 or secondchar == 6 or thirdchar == 6 : 
    stringList.append("i") 
elif firstchar == 7 or secondchar == 7 or thirdchar == 7 : 
    stringList.append("j") 
elif firstchar == 8 or secondchar == 8 or thirdchar == 8 : 
    stringList.append("k") 
elif firstchar == 9 or secondchar == 9 or thirdchar == 9 : 
    stringList.append("l") 
elif firstchar == 10 or secondchar == 10 or thirdchar == 10 : 
    stringList.append("m") 
elif firstchar == 11 or secondchar == 11 or thirdchar == 11 : 
    stringList.append("n") 
elif firstchar == 12 or secondchar == 12 or thirdchar == 12 : 
    stringList.append("o") 
elif firstchar == 13 or secondchar == 13 or thirdchar == 13 : 
    stringList.append("p") 
elif firstchar == 14 or secondchar == 14 or thirdchar == 14 : 
    stringList.append("q") 
elif firstchar == 15 or secondchar == 15 or thirdchar == 15 : 
    stringList.append("r") 
elif firstchar == 16 or secondchar == 16 or thirdchar == 16 : 
    stringList.append("s") 
elif firstchar == 17 or secondchar == 17 or thirdchar == 17 : 
    stringList.append("t") 
elif firstchar == 18 or secondchar == 18 or thirdchar == 18 : 
    stringList.append("u") 
elif firstchar == 19 or secondchar == 19 or thirdchar == 19 : 
    stringList.append("v") 
elif firstchar == 20 or secondchar == 20 or thirdchar == 20 : 
    stringList.append("w") 
elif firstchar == 21 or secondchar == 21 or thirdchar == 21 : 
    stringList.append("x") 
elif firstchar == 22 or secondchar == 22 or thirdchar == 22 : 
    stringList.append("y") 
elif firstchar == 23 or secondchar == 23 or thirdchar == 23 : 
    stringList.append("z") 
elif firstchar == 31 or secondchar == 31 or thirdchar == 31 : 
    stringList.append("a") 
elif firstchar == 32 or secondchar == 32 or thirdchar == 32 : 
    stringList.append("b") 

print join(stringList) 

回答

4
stringList = []         # <- stringList is empty 

firstchar = (fingerprint - key) % 33 
secondchar = fingerprint - ord(stringList[0])... # <- reference its first item 
+0

啊我看到現在。我該如何解決它,使其找到firstchar的值,然後將其添加到列表中,然後執行查找secondchar的操作? – user1877442 2013-02-28 22:01:44

+0

很難給你提供建議,因爲我不知道你想要實現什麼。兩次猜測是「在計算firstchar後」用'firstchar'「和」do'stringList.append(firstchar)'替換'stringList [0]「。也許你應該問一個單獨的問題。 – 2013-02-28 22:05:49

相關問題