Python

Помогите довести до ума код. Спасибо

for every_question in questions:
print(every_question["question"])
number_of_answer = 0
number_of_right_answers = 0
for answers in every_question["answers"]:
number_of_answer += 1
print(str(number_of_answer) + ".", answers)
users_answers = int(input("Введите номер правильного ответа "))
if users_answers == every_question["right_answer"]:
print("Верно!")
number_of_right_answers += 1
else:
print("Неверно")

if number_of_right_answers == 3:
print("Все ответы верны")
if number_of_right_answers == 2:
print("Почти все ответы верны")
if number_of_right_answers == 1:
print("Верен только один ответ")
else:
print("Ни один из ответ не верен")
print("Количество верных ответов:", str(number_of_right_answers))

Даже если я отвечаю правильно на все вопросы викторины,появляется "Верен только один ответ" и "Количество верных ответов:1"
хз, вытащи number_of_right_answers = 0 за пределы циклов, что ли:
 # база данных вопросов викторины
questions = (
{"question" : "чему равно 1+1?", "answers" : ("один", "два", "три"), "right_answer" : 2},
{"question" : "чему равно 3+1?", "answers" : ("четыре", "пять"), "right_answer" : 1},
{"question" : "чему равно 6/3?", "answers" : ("два", "четыре"), "right_answer" : 1},
)


# готовимся к работе
number_of_right_answers = 0

# проводим викторину
for every_question in questions:

# печатаем очередной вопрос
print(every_question["question"])

# печатаем варианты ответов
number_of_answer = 0
for answer in every_question["answers"]:
number_of_answer += 1
print(f"{number_of_answer}. {answer}")

# получаем вариант пользователя
users_answer = int(input("Введите номер правильного ответа: "))

# обрабатываем вариант пользователя
if users_answer == every_question["right_answer"]:
print("Верно!")
number_of_right_answers += 1
else:
print("Неверно")

# подводим итог
match number_of_right_answers :
case 3:
print("Все ответы верны")
case 2:
print("Почти все ответы верны")
case 1:
print("Верен только один ответ")
case _:
print("Ни один из ответ не верен")

print(f"Количество верных ответов: {number_of_right_answers}")
Шаранский Икц
Шаранский Икц
82 894
Лучший ответ
Олег Мамонтов А зачем? А как считать правильные ответы? А я уже пробовал так делать?
Олег Мамонтов Большое спасибо
Не надо проверять все условия..

 for every_question in questions: 
print(every_question["question"])
number_of_answer = 0
number_of_right_answers = 0

for answers in every_question["answers"]:
number_of_answer += 1
print(str(number_of_answer) + ".", answers)

users_answers = int(input("Введите номер правильного ответа "))

if users_answers == every_question["right_answer"]:
print("Верно!")
number_of_right_answers += 1
else:
print("Неверно")

if number_of_right_answers == 3:
print("Все ответы верны")
elif number_of_right_answers == 2:
print("Почти все ответы верны")
elif number_of_right_answers == 1:
print("Верен только один ответ")
else:
print("Ни один из ответов не верен")

print("Количество верных ответов:", str(number_of_right_answers))
111111 Санды Суйом
111111 Санды Суйом
98 146
Олег Мамонтов Лучше,но все равно не то. Все равно если верно, ответить на все вопросы верно,то не выводится,что нужно. Все-таки надо радикально код переписывать))
Олег Мамонтов Кстати,если после
else:
print("Неверно")
сделать отступ,то переменная number_of_right_answers будет не определена,хотя это ничего не меняет ))
111111 Санды Суйом questions = [
{
"question": "Сколько будет 2 * 3?",
"answers": ["4", "5", "6"],
"right_answer": 2 # Индекс правильного ответа