Найти - Пользователи
Полная версия: Не работает счетчик
Начало » Центр помощи » Не работает счетчик
1
ask0ne
Делаю тест программу, нужно чтобы считал количество неправильно введённых ответов, но все время сбрасывает счетчик, может что-то забыл?
 from tkinter import*
from tkinter import messagebox
root = Tk()
root.title("Тест")
root.geometry("710x150")
err=0
ls = [
    ("Вопрос 1", "1"),
    ]
def ask_question(q, correct_answer):
    question = Label(root, font="14", text=q+"\n")
    answer = Entry(font="14")
    btn = Button(root, font="14", text="Ответить", command=lambda: check_answer(answer.get().lower(), correct_answer, question, err))
    question.grid(row=0)
    question.place(width=705)
    answer.grid(row=1)
    answer.place(y=50, x=290, width=140)
    btn.grid(row=2)
    btn.place(y=85, x=315)
def check_answer(answer, correct_answer, question, err):
    if answer.lower() == correct_answer:
        if len(ls) > 0:
            next_question, next_answer = ls.pop(0)
            ask_question(next_question, next_answer)
            question.config(text="")
        else:
            messagebox.showinfo("Молодец!", "Ты успешно выполнил тест!\n"+str(err)+" ошибок")
            exit(1)
    else:
        err+=1
        messagebox.showerror("Неверно!", "Попробуй еще")
    return (err)
question, answer = ls.pop(0)
ask_question(question, answer)
root.mainloop()
doza_and
Да все у вас ок. Передаете значение глобальной переменной err в функцию. Это значение там увеличиваете и возвращаете.

Возвращаемый результат выбрасываете. Глобальная err надежно защищена от изменений! Вы нигде и не пытаетесь ее менять.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB