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 уже вводится в строковом типе