Форум сайта python.su
Никак не могу найти причину ошибки.
#coding: utf-8 from tkinter import * from tkinter import ttk from tkinter import messagebox sum1 = 0 x = Tk () x.geometry("300x300") x.title("Топ программ") def y (): t = Label(x, text = "Человек ли Вы?", font = "Arial 14") t.pack() e = Entry() e.pack() b = Button(x, text = "Ответить", command = lambda: z()) b.pack() def z (): if e.get().lower() == "да": y1() sum1 = sum1 + 1 else: y1() def y1 (): t1 = Label(x, text = "Один из умнейших вулканцев?", font = "Arial 14") t1.pack() e1 = Entry() e1.pack() b1 = Button(x, text = "Ответить", command = lambda: z1()) b1.pack() def z1 (): if e1.get().lower() == "спок": y3() sum1 = sum1 + 1 else: y3() def y3(): t3 = Label(x, text = "Создатель Apple?", font = "Arial 14") t3.pack() e3= Entry() e3.pack() b3= Button(x, text = "Ответить", command = lambda: z3()) b3.pack() def z3(): if e3.get().lower() == "стив джобс" or e3.get() == "джобс": y4() sum1 = sum1 + 1 else: y4() def y4(): t4 = Label(x, text = "Создатель Steam?", font = "Arial 14") t4.pack() e4 = Entry() e4.pack() b4 = Button(x, text = "Ответить", command = lambda: z4()) b4.pack() def z4(): if e4.get().lower() == "гейб": sum1 = sum1 + 1 if sum1 == 1: messagebox.showwarning("ИТОГ", "Ты ответил правильно на 1 вопрос") elif sum1 == 2: messagebox.showwarning("ИТОГ", "Ты ответил правильно на 2 вопроса") elif sum1 == 3: messagebox.showwarning("ИТОГ", "Ты ответил правильно на 3 вопроса") elif sum1 == 4: messagebox.showwarning("ИТОГ", "Ты ответил правильно на 4 вопроса") elif sum1 == 5: messagebox.showwarning("ИТОГ", "Ты ответил правильно на 5 вопросов") else: if sum1 == 1: messagebox.showwarning("ИТОГ", "Ты ответил правильно на 1 вопрос") elif sum1 == 2: messagebox.showwarning("ИТОГ", "Ты ответил правильно на 2 вопроса") elif sum1 == 3: messagebox.showwarning("ИТОГ", "Ты ответил правильно на 3 вопроса") elif sum1 == 4: messagebox.showwarning("ИТОГ", "Ты ответил правильно на 4 вопроса") elif sum1 == 5: messagebox.showwarning("ИТОГ", "Ты ответил правильно на 5 вопросов") y() x.mainloop()
Офлайн
Ну вам же ясно пишут - переменная используется раньше чем ее определили. смотрите на 19 строку - sum1 ранее не была определена.
Офлайн
JOHN_16 не увидел, что у вас есть глобальная переменная с таким именем, но он тем не менее абсолютно прав. Интерпретатор не может сам догадаться, что вы хотите присвоить значение глобальной переменной, а не переменной области видимости функции. погуглите ключевые слова global и nonlocal
Офлайн