python Буквы по алфавиту

Есть код, нужно как то создать код который будет равен букве по алфавиту(кириллица)

a = str(input('Введите Фамилию: '))
for i in range(len(a)):
    print ('Буква: {}, Код: {}, Шифрограмма: {}'.format(a[i], i, i**5 % 91))

print (a)

Ответы (2 шт):

Автор решения: Dmitry Belskii

Сделал так:

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)
→ Ссылка
Автор решения: ПИТОНИСТ версия-3-8

Вот получше, со спрашиваемым ключом:

a = list(input('Введите Фамилию --> ').lower())
alph = list("абвгдеёжзийклмнопрстуфхцчшщъыьэюяабвгдеёжзийклмнопрстуфхцчшщъыьэюя")
key=int(input('Введите ключ шифрования --> '))
for i in range(len(a)):
    f=a[i]
    fi=alph.index(f)
    fi=alph[fi+key]
    a[i]=fi
print("Зашифрованная фамилия: "+''.join(a))

Строк столько же.

Можно сделать так, чтобы он не выдавал ошибку, например, при введении ключа a:

while True:
    try:
        a = list(input('Введите Фамилию --> ').lower())
        alph = list("абвгдеёжзийклмнопрстуфхцчшщъыьэюяабвгдеёжзийклмнопрстуфхцчшщъыьэюя")
        key=int(input('Введите ключ шифрования --> '))
        for i in range(len(a)):
            f=a[i]
            fi=alph.index(f)
            fi=alph[fi+key]
            a[i]=fi
        print("Зашифрованная фамилия: "+''.join(a))
        break
    except:
        print("ERROR: вы ввели неправильное значение. Программа перезапущена")

Добавились 4 строки.

Кстати, зачем вы делали str(input(...))? Ведь значение input уже вводится в строковом типе

→ Ссылка