Python Пропускает следующие совпадения Шифрование
Есть код который шифрует фамилию, но если есть несколько одинаковых букв то код пропускает их, не могу найти в чем проблема
a = str(input('Введите Фамилию: '))
a = a.lower()
alph = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
name = {}
for i in a:
name.update({i:alph.find(i)+1})
for letter, key in name.items():
print ('Буква: {}, Код: {}, Шифрограмма: {}'.format(letter, key, key**5 % 91))
print (a)
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
Не совсем понял задачу Вам требуется вот это произвести?
a = 'пушкин'
alph = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
print(*[(alph.index(i)**5 % 91) for i in a]) # выведется 74 76 51 72 81 14
т.е. для каждой буквы получаем ее индекс, для индекса вычисляет i**5 % 91
дальше в буквы перевести нельзя поскольку i**5 % 91 предполагает 91 символ, а в словаре 33 буквы или нужен какой-то расширенный словарь, содержащий 91 символ
или нужно это?
a = 'пушкин'
alph = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
encoded = ''.join(alph[alph.index(i)**5 % len(alph)] for i in a)
print(encoded) # выведется бцбклц