Проблема заключается в том:Цезарь 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
Левой колонка представляет собой открытый текст письмо, а правая колонка представляет собой соответствующий шифротекст.
Ваша программа должна декодировать файл «encrypted.txt» с помощью «key.txt» и записать открытый текст в «decrypted.txt».
У меня есть:
decrypt = ""
keyfile = open("key.txt", "r")
cipher = {}
for keyline in keyfile:
cipher[keyline.split()[0]] = keyline.split()[1]
keyfile.close()
encrypt = []
encryptedfile = open("encrypted.txt", "r")
readlines = encryptedfile.readlines()
str = ""
for line in readlines:
str = line
letter = list(str)
for i in range(len(letter)):
if letter[i]==",":
decrypt += ","
elif letter[i] == ".":
decrypt+= "."
elif letter[i] == "!":
decrypt += "!"
elif letter[i] == " ":
decrypt += " "
else:
found = False
count = 0
while (found == False):
if (letter[i] == keyline.split()[0][count]):
decrypt += keyline.split()[1][count]
found = True
count += 1
print decrypt
encryptedfile.close()
decryptedfile = open("decrypted.txt", "w")
decryptedfile.write(decrypt)
decryptedfile.close()
Это язык Python. Выход делает файл под названием decrypted.txt, но единственное, что есть в файле, это A, что для меня не имеет смысла. Для проблемы это должно вывести больше, чем это правильно?
Добро пожаловать в StackOverflow, вы можете быть немного более конкретно о том, что ваш вопрос, как ваша программа потерпит неудачу? Кроме того, нам нужно знать, на каком языке вы используете, можете ли вы изменить свой вопрос, чтобы добавить информацию о tat? – mmgross
Если это действительно ваш код, то уровни отступов дают ему существенно различную семантику, чем то, что вы, вероятно, намеревались ... И, фактически, в любом файле, который содержит только знаки препинания или пробела, вы получите 'NameError', потому что вы есть путь к коду, в котором вы можете ввести свой 'while (found == False)' loop с 'found', который никогда не был определен ... Это может быть так, даже с исправлением отступов. – twalberg