나는이 프로그램을 여러 번 작동 시키려고했지만 올바른 출력을 출력하기 위해 프로젝트를 수행한다고 생각하지 않습니다. 프로젝트는 다음과 같습니다 :Python Caesar Cipher 프로젝트, 잘못된 출력
프로그램은 "encrypted.txt"라는 암호화 된 텍스트 파일을 디코딩해야합니다. 작성한 사람이 "key. txt"에 지정된 암호를 사용했습니다. 이 키 파일은 다음과 유사하게
A B B C C D D E E F F G G H H I I J J K K L L M M N N O O P P Q Q R R S S T T U U V V W W X X Y Y Z Z A
왼쪽 열은 일반 텍스트 문자를 나타냅니다, 오른쪽 열은 해당 암호문을 나타냅니다. 프로그램은 "key.txt"를 사용하여 "encrypted.txt"파일을 디코딩하고 "decrypted.txt"에 일반 텍스트를 작성해야합니다. 프로그램은 두 개의 키 파일 (또는 키 복제)없이 암호화 된 대문자와 소문자를 모두 처리해야합니다. 해독 된 텍스트는 모두 대문자로 가질 수 있습니다. 키 파일에없는 암호화 된 텍스트의 문자를 처리 할 수 있어야합니다. 이 경우 암호 해독을 반복하면됩니다. 이렇게하면 암호를 해독 할 때 공백으로 남아있는 암호화 된 텍스트에 공백을 둘 수 있습니다. 키 파일을 만드는 프로그램을 작성할 수 있지만 제출에 키 파일을 포함시키지 마십시오. 암호화 된 텍스트 파일과 키 텍스트 파일을 수동으로 생성 할 수 있습니다. Python Shell의 "new file"옵션 (txt로 저장하는 것을 잊지 마십시오)이나 메모장과 같은 편집기를 사용하십시오. 단어를 사용하지 마십시오.
keyFile = open("key.txt", "r") keylist1= [] keylist2 = [] for line in keyFile: keylist1.append(line.split()[0]) keylist2.append(line.split()[1]) keyFile.close() encryptedfile = open("encrypted.txt", "r") lines = encryptedfile.readlines() currentline = "" decrypt = "" for line in lines: currentline = line letter = list(currentline) for i in range(len(letter)): currentletter = letter[i] if not letter[i].isalpha(): decrypt += letter[i] else: for o in range(len(keylist1)): if currentletter == keylist1[o]: decrypt += keylist2[o] print(decrypt)
내가 할 수있는 유일한 출력은 다음과 같습니다 :
내 코드?는, 여기
올바르지 않습니다.
키 파일에는 대문자 만 포함될 수 있지만'encrypted.txt'에는 소문자가 포함되어 있으며 대소 문자는 변환하지 않습니다. – Barmar
안내에 바로 있습니다 : ** 귀하의 프로그램은 두 개의 키 파일 (또는 키 복제)없이 암호화 된 대문자와 소문자를 모두 처리해야합니다. ** – Barmar
목록을 검색하는 대신 사전을 사용하십시오. – Barmar