Форум сайта python.su
Доброго времени суток! Помогите решить проблему. Мне нужно написать шифратор который, шифрует текст методом подстановки, т.е. есть таблица в соответствии с которой одни символы в веденной строке должны заменяться на другие. Через 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”)]
Отредактировано sedooooooy@gmail.com (Март 18, 2015 01:00:49)
Офлайн
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])
Отредактировано terabayt (Март 18, 2015 01:21:40)
Офлайн
terabaytСпасибо, только я не понял последнюю строчку, объясните если можно.
print ''.join([code_list for i in char_list])
Офлайн
последняя строчка аналогична этому
a = [] for i in char_list: a.append(code_list[i]) b = ''.join(a) print b
>>> 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
Отредактировано terabayt (Март 18, 2015 01:42:41)
Офлайн
Во всем разобрался еще раз спасибо. Тему можно считать закрытой.
Офлайн