2015-06-23 2 views
0

Мне удалось создать код, который шифрует текстовый файл с использованием случайного сгенерированного фактора смещения ранее в программе, но я не знаю, как покинуть пространства, где они находятся, без их шифрования?Шифрование текстового файла, но оставление пространства?

text_file = open("sample.txt", "r") 

characters = [] 
for line in text_file: 
    for c in line: 
     characters.append(c) 

text_ascii = [] 
text_number = 0 
new_number = 0 
cipher_text = "" 
for i in characters: 
    if i not in (" "): 
     text_ascii = ord(i) 
     text_number = text_ascii + offset_factor 
     if text_number > 126: 
      text_number = text_number - 94 
     new_number = chr(text_number) 
     cipher_text = cipher_text + new_number 

print (cipher_text) 

Код, который у меня есть, не шифрует пространства и не включает их вообще.

Содержание текстового файла (так называемый «sample.txt» и все в одной строке) является:

Где-то в Ла-Манче, в месте, чье имя я не хочу помнить, джентльмен не жил давно, один из тех, у кого есть копье и древний щит на полке, и держит тощий ворч и борзая для гонок.

+0

Если я не в (""): => if i! = "": –

ответ

1

Вы забыли обработать дело, где оно находится is пробел.

if ...: 
    ... 
else: 
    cipher_text += ' ' 
0

, который будет работать, но я хотел бы предложить вам использовать функцию maketrans, и переводить в питона 3+ необходимо использовать str.maketrans и str.translate, но Python 2.x необходимо импортировать строку и используйте string.maketrans и string.translate. используя эти функции, python позволяет очень эффективный, короткий и простой в использовании метод шифрования цезарного шифрования ...

message = input('enter message').lower() 
offset = int(input('enter offset (enter a negative number to decrypt)')) 
alphabet = 'abcdefghijklmnopqrstuvwxyz' 
enc_alphabet = (alphabet[alphabet.index(alphabet[offset]):len(alphabet)])+alphabet[0:offset] 
data = str.maketrans(alphabet,enc_alphabet) 
final_message = str.translate(message, data) 
print(final_message) 
Смежные вопросы