1) Не работает elif. Вместо него срабатывает else. Почему?
2) По условию после срабатывания else нужно вернуться к инициализации переменной per. Как это сделать? Цикл по умолчанию возвращается на начало и выбирает новый ключ, но мне нужно дождаться правильного ввода на предыдущий.
# 1) Создайте словарь из 3-х ключей «Hello», «Bуe» и «Lesson»
# и значениями соответственно «Здравствуй», «Пока» и «Урок».
# 2) В бесконечном цикле выводите случайное значение из словаря
# и просите пользователя написать перевод на английском.
# 3) Проверяйте на соответствие введённой пользователем строки и ключа словаря.
# Если пользователь ввёл всё правильно, то выводить ему следующее слово.
# Если неправильно, то сообщать ему об этом, и заново ждать от него уже другого ответа.
# И так до тех пор, пока он не введёт правильный ответ.
# 4) Если пользователь вводит команду «show», то вывести словарь.
# 5) Если пользователь вводит «quit», то завершать программу.
# Примечание: не забывайте, что если пользователь будет писать,
# например: «hello», «Hello» или «HELlo» - то это всё считать правильными ответами.
import random
slv = {'Hello': 'Здравствуй', 'Bye': 'Пока', 'Lesson': 'Урок'}
keys = list(slv.keys())
print('''Введите "show", чтобы увидеть весь словарь.
Для завершения введите "quit".''')
while True:
a = random.choice(keys)
print(slv[a])
print('Напишите перевод слова')
per = input().capitalize()
if per == a:
print('Отлично! Продолжаем!')
elif per == 'show':
print(slv)
elif per == 'quit':
exit()
else:
print('Ответ неверен. Попробуйте ещё раз.')