2013-02-28 3 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

+0

구현하려고하는 것이 무엇인지 모르기 때문에 조언을하기가 어렵습니다. 두 가지 추측은 "stringchar [0]"을 "firstchar"로 대체하고 "do"stringList.append (firstchar)'를 'firstchar'을 계산 한 후에 대체합니다. 어쩌면 별도의 질문을해야 할 것입니다. –

관련 문제