Найти - Пользователи
Полная версия: шифратор текста
Начало » Центр помощи » шифратор текста
1
sedooooooy@gmail.com
Доброго времени суток! Помогите решить проблему. Мне нужно написать шифратор который, шифрует текст методом подстановки, т.е. есть таблица в соответствии с которой одни символы в веденной строке должны заменяться на другие. Через if не предлагать, поскольку, текст может быть произвольной величины.В программировании 2 дня, так что надеюсь на вашу помощь. Начало программы и сама таблица прилагается. Ссылка на похожую тему будет очень кстати
Код Python
data = raw_input(“Vvedite text dlya shifrovaniya:”)
char_list = list(data.upper())
print char_list
code_list = [(“A”,“Z”),(“B”,“ ”),(“C”,“.”),(“D”,“X”),(“E”,“Y”),(“F”,“,”),
(“G”,“!”),(“H”,“S”),(“I”,“T”),(“J”,“:”),(“K”,“;”),(“L”,“Q”),
(“M”,“R”),(“N”,“?”),(“O”,“-”),(“P”,“N”),(“Q”,“O”),(“R”,“V”),
(“S”,“L”),(“T”,“M”),(“U”,“N”),(“V”,“O”),(“W”,“P”),(“X”,“A”),
(“Y”,“B”),(“Z”,“C”),(“ ”,“D”),(“.”,“E”),(“,”,“F”),(“!”,“G”),
(“:”,“H”),(“;”,“I”),(“?”,“J”),(“-”,“K”)]
terabayt
data = raw_input("Vvedite text dlya shifrovaniya:") 
char_list = list(data.upper())
print char_list
code_list = [("A", "Z"), ("B", " "), ("C", "."), ("D", "X"), ("E", "Y"), ("F", ","),
             ("G", "!"), ("H", "S"), ("I", "T"), ("J", ":"), ("K", ";"), ("L", "Q"),
             ("M", "R"), ("N", "?"), ("O", "-"), ("P", "N"), ("Q", "O"), ("R", "V"),
             ("S", "L"), ("T", "M"), ("U", "N"), ("V", "O"), ("W", "P"), ("X", "A"),
             ("Y", "B"), ("Z", "C"), (" ", "D"), (".", "E"), (",", "F"), ("!", "G"),
             (":", "H"), (";", "I"), ("?", "J"), ("-", "K")]
 
code_list = dict(code_list)
print ''.join([code_list[i] for i in char_list])
sedooooooy@gmail.com
terabayt
print ''.join([code_list for i in char_list])
Спасибо, только я не понял последнюю строчку, объясните если можно.
terabayt
последняя строчка аналогична этому
a = []
for i in char_list:
    a.append(code_list[i])
b = ''.join(a)
print b
почитайте о генераторах списков
а метод join объединяет список в строку через разделитель
>>> print ''.join.__doc__
S.join(iterable) -> string
Return a string which is the concatenation of the strings in the
iterable.  The separator between elements is S.
также этот код можно проще переписать
data = raw_input("Vvedite text dlya shifrovaniya:") 
char_list = list(data.upper())
print char_list
code_list = [("A", "Z"), ("B", " "), ("C", "."), ("D", "X"), ("E", "Y"), ("F", ","),
             ("G", "!"), ("H", "S"), ("I", "T"), ("J", ":"), ("K", ";"), ("L", "Q"),
             ("M", "R"), ("N", "?"), ("O", "-"), ("P", "N"), ("Q", "O"), ("R", "V"),
             ("S", "L"), ("T", "M"), ("U", "N"), ("V", "O"), ("W", "P"), ("X", "A"),
             ("Y", "B"), ("Z", "C"), (" ", "D"), (".", "E"), (", ", "F"), ("!", "G"),
             (":", "H"), (";", "I"), ("?", "J"), ("-", "K")]
 
code_list = dict(code_list)
s = ''
for i in char_list:
    s += code_list[i]
print s
sedooooooy@gmail.com
Во всем разобрался еще раз спасибо. Тему можно считать закрытой.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB