переключение букв на разные буквы внутри строки (шифр Цезаря) - PullRequest
0 голосов
/ 02 декабря 2011

У меня есть домашнее задание с использованием шифра Цезаря, и я застрял здесь: Мне нужно написать функцию, которая получает текст (в виде строки) и словарь. Ключи словаря - это английская азбука, а его значения - другие буквы из азбуки. Моя цель - просмотреть текст и там, где есть буква (только буквы!) измените его на значение принадлежащее конкретной букве в словаре.

edit: моя функция должна возвращать расшифрованный текст в виде строки.

Ответы [ 3 ]

3 голосов
/ 02 декабря 2011

Вы ищете метод translate:

>>> u"abc".translate({ord('a'): u'x', ord('b'): u'y', ord('c'): u'z'})
'xyz'

Посмотрите на maketrans, если вы используете строки байтов или ваш Python старше 2.7.

2 голосов
/ 02 декабря 2011

Первый вопрос: нужно ли вам сделать это на месте.

Тогда я бы посмотрел на эти вещи:

  1. понимание списка
  2. map ()
  3. как перебирать буквы в строке
  4. как объединить последовательность букв для создания строки
  5. как заменить символы в строке

Нев любом конкретном порядке и не обязательно все включено.

2 голосов
/ 02 декабря 2011

Немного псевдокода (независимость от языка).Вы должны быть в состоянии взять это отсюда.

cipher = array
caesar_mask = [ A: G, ... , Z: F ] 

for each letter_index in text
    cipher_letter = caesar_mask[text[letter_index]]
    cipher[] = cipher_letter
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...