программа должна выводить случайный пример по кнопке но выводит ошибку. tkinter python


import random
from tkinter import *
from tkinter import ttk
def fullprogram():
    selecttypeofsign = 0
    numbers1 = []
    numbers2 = []
    def variabletypeofsign1_2__1():  # выбор знака сверху 1 2
        if selecttypeofsign == 1:
            typeofsign = [numbers1[0], '+', numbers1[1]]
        if selecttypeofsign == 2:
            typeofsign = [numbers1[0], '-', numbers1[1]]
        if selecttypeofsign == 3:
            typeofsign = [numbers1[0], "*", numbers1[1]]
        if selecttypeofsign == 4:
            typeofsign = [numbers1[0], "/", numbers1[1]]
        return typeofsign
    def variabletypeofsign2_3__1():  # выбор знака сверху 2 3
        if selecttypeofsign == 1:
            typeofsign = ["+", numbers1[2]]
        if selecttypeofsign == 2:
            typeofsign = ["-", numbers1[2]]
        if selecttypeofsign == 3:
            typeofsign = ["*", numbers1[2]]
        if selecttypeofsign == 4:
            typeofsign = ["/", numbers1[2]]
        return typeofsign
    def variabletypeofsign1_2__2():  # выбор знака снизу 1 2
        if selecttypeofsign == 1:
            typeofsign = [numbers2[0], "+", numbers2[1]]
        if selecttypeofsign == 2:
            typeofsign = [numbers2[0], "-", numbers2[1]]
        if selecttypeofsign == 3:
            typeofsign = [numbers2[0], "*", numbers2[1]]
        if selecttypeofsign == 4:
            typeofsign = [numbers2[0], "/", numbers2[1]]
        return typeofsign
    def variabletypeofsign2_3__2():  # выбор знака снизу 2 3
        if selecttypeofsign == 1:
            typeofsign = ["+", numbers2[2]]
        if selecttypeofsign == 2:
            typeofsign = ["-", numbers2[2]]
        if selecttypeofsign == 3:
            typeofsign = ["*", numbers2[2]]
        if selecttypeofsign == 4:
            typeofsign = ["/", numbers2[2]]
        return typeofsign
    difficult = 1
    if difficult == 1:
        selecttypefraction = random.randint(1, 2)
        if selecttypefraction == 1:
            selectminitype_up = random.randint(1, 3)
            selectminitype_down = random.randint(1, 3)
            for x in range(selectminitype_up):
                numbers1.append(random.randint(1, 100))
            for x in range(selectminitype_down):
                numbers2.append(random.randint(1, 100))
            if selectminitype_up == 2 or selectminitype_up == 3:
                if selectminitype_up == 2:
                    selecttypeofsign = random.randint(1, 4)
                    up1 = variabletypeofsign1_2__1()
                else:
                    selecttypeofsign = random.randint(1, 4)
                    up1 = variabletypeofsign1_2__1()
                    selecttypeofsign = random.randint(1, 4)
                    up2 = variabletypeofsign2_3__1()
            if selectminitype_down == 2 or selectminitype_down == 3:
                if selectminitype_down == 2:
                    selecttypeofsign = random.randint(1, 4)
                    down1 = variabletypeofsign1_2__2()
                else:
                    selecttypeofsign = random.randint(1, 4)
                    down1 = variabletypeofsign1_2__2()
                    selecttypeofsign = random.randint(1, 4)
                    down2 = variabletypeofsign2_3__2()
            if selectminitype_up > 1:
                if selectminitype_down > 1:
                    if selectminitype_up == 2:
                        if selectminitype_down == 2:
                            text = Label(tk, text=up1)
                            text.place(x=10, y=10)
                            text = Label(tk, text="———")
                            text.place(x=10, y=25)
                            text = Label(tk, text=down1)
                            text.place(x=11, y=40)
                        else:
                            text = Label(tk, text=up1)
                            text.place(x=10, y=10)
                            text = Label(tk, text="——————")
                            text.place(x=10, y=25)
                            text = Label(tk, text=down1)
                            text.place(x=11, y=40)
                            text = Label(tk, text=down2)
                            text.place(x=55, y=40)
                    else:
                        if selectminitype_down == 2:
                            text = Label(tk, text=up1)
                            text.place(x=10, y=10)
                            text = Label(tk, text=up2)
                            text.place(x=55, y=10)
                            text = Label(tk, text="——————")
                            text.place(x=10, y=25)
                            text = Label(tk, text=down1)
                            text.place(x=11, y=40)
                        else:
                            text = Label(tk, text=up1)
                            text.place(x=10, y=10)
                            text = Label(tk, text=up2)
                            text.place(x=55, y=10)
                            text = Label(tk, text="———————")
                            text.place(x=10, y=25)
                            text = Label(tk, text=down1)
                            text.place(x=11, y=40)
                            text = Label(tk, text=down2)
                            text.place(x=55, y=40)
                else:
                    if selectminitype_up == 2:
                        text = Label(tk, text=up1)
                        text.place(x=10, y=10)
                        text = Label(tk, text="————")
                        text.place(x=10, y=25)
                        text = Label(tk, text=numbers2[0])
                        text.place(x=11, y=40)
                    else:
                        text = Label(tk, text=up1)
                        text.place(x=10, y=10)
                        text = Label(tk, text=up2)
                        text.place(x=55, y=10)
                        text = Label(tk, text="———————")
                        text.place(x=10, y=25)
                        text = Label(tk, text=numbers2[0])
                        text.place(x=11, y=40)
            else:  # сверху 1 число
                if selectminitype_down > 1:
                    if selectminitype_down == 2:
                        text = Label(tk, text=numbers1[0])
                        text.place(x=11, y=10)
                        text = Label(tk, text="————")
                        text.place(x=10, y=25)
                        text = Label(tk, text=down1)
                        text.place(x=11, y=40)
                    else:
                        text = Label(tk, text=numbers1[0])
                        text.place(x=11, y=10)
                        text = Label(tk, text="——————")
                        text.place(x=10, y=25)
                        text = Label(tk, text=down1)
                        text.place(x=11, y=40)
                        text = Label(tk, text=down2)
                        text.place(x=55, y=40)
                else:
                    text = Label(tk, text=numbers1[0])
                    text.place(x=11, y=10)
                    text = Label(tk, text="—")
                    text.place(x=10, y=25)
                    text = Label(tk, text=numbers2[0])
                    text.place(x=11, y=40)
        if selecttypefraction == 2:
            selectminitype_up = random.randint(1, 3)
            selectminitype_down = random.randint(1, 3)
            for x in range(selectminitype_up):
                numbers1.append(random.randint(0, 100))
            for x in range(selectminitype_down):
                numbers2.append(random.randint(0, 100))
            if selectminitype_up == 2 or selectminitype_up == 3:
                if selectminitype_up == 2:
                    selecttypeofsign = random.randint(1, 4)
                    up1 = variabletypeofsign1_2__1()
                else:
                    selecttypeofsign = random.randint(1, 4)
                    up1 = variabletypeofsign1_2__1()
                    selecttypeofsign = random.randint(1, 4)
                    up2 = variabletypeofsign2_3__1()
            if selectminitype_down == 2 or selectminitype_down == 3:
                if selectminitype_down == 2:
                    selecttypeofsign = random.randint(1, 4)
                    down1 = variabletypeofsign1_2__2()
                else:
                    selecttypeofsign = random.randint(1, 4)
                    down1 = variabletypeofsign1_2__2()
                    selecttypeofsign = random.randint(1, 4)
                    down2 = variabletypeofsign2_3__2()
            if selectminitype_up > 1:
                if selectminitype_down > 1:
                    if selectminitype_up == 2:
                        if selectminitype_down == 2:
                            text = Label(tk, text=up1)
                            text.grid(column=0, row=0)
                            text = Label(tk, text="*")
                            text.grid(column=1, row=0)
                            text = Label(tk, text=down1)
                            text.grid(column=2, row=0)
                        else:
                            text = Label(tk, text=up1)
                            text.grid(column=0, row=0)
                            text = Label(tk, text="*")
                            text.grid(column=1, row=0)
                            text = Label(tk, text=down1)
                            text.grid(column=2, row=0)
                            text = Label(tk, text=down2)
                            text.grid(column=3, row=0)
                    else:
                        if selectminitype_down == 2:
                            text = Label(tk, text=up1)
                            text.grid(column=0, row=0)
                            text = Label(tk, text=up2)
                            text.grid(column=1, row=0)
                            text = Label(tk, text="*")
                            text.grid(column=2, row=0)
                            text = Label(tk, text=down1)
                            text.grid(column=3, row=0)
                        else:
                            text = Label(tk, text=up1)
                            text.grid(column=0, row=0)
                            text = Label(tk, text=up2)
                            text.grid(column=1, row=0)
                            text = Label(tk, text="*")
                            text.grid(column=2, row=0)
                            text = Label(tk, text=down1)
                            text.grid(column=3, row=0)
                            text = Label(tk, text=down2)
                            text.grid(column=4, row=0)
                else:
                    if selectminitype_up == 2:
                        text = Label(tk, text=up1)
                        text.grid(column=0, row=0)
                        text = Label(tk, text="*")
                        text.grid(column=1, row=0)
                        text = Label(tk, text=numbers2[0])
                        text.grid(column=2, row=0)
                    else:
                        text = Label(tk, text=up1)
                        text.grid(column=0, row=0)
                        text = Label(tk, text=up2)
                        text.grid(column=1, row=0)
                        text = Label(tk, text="*")
                        text.grid(column=2, row=0)
                        text = Label(tk, text=numbers2[0])
                        text.grid(column=3, row=0)
            else:
                if selectminitype_down > 1:
                    if selectminitype_down == 2:
                        text = Label(tk, text=numbers1[0])
                        text.grid(column=0, row=0)
                        text = Label(tk, text="*")
                        text.grid(column=1, row=0)
                        text = Label(tk, text=down1)
                        text.grid(column=2, row=0)
                    else:
                        text = Label(tk, text=numbers1[0])
                        text.grid(column=0, row=0)
                        text = Label(tk, text="*")
                        text.grid(column=1, row=0)
                        text = Label(tk, text=down1)
                        text.grid(column=2, row=0)
                        text = Label(tk, text=down2)
                        text.grid(column=3, row=0)
                else:
                    text = Label(tk, text=numbers1[0])
                    text.grid(column=0, row=0)
                    text = Label(tk, text="*")
                    text.grid(column=1, row=0)
                    text = Label(tk, text=numbers2[0])
                    text.grid(column=2, row=0)
def click_button():
    global clicks
    fullprogram()
tk = Tk()
tk.title("Генерация примеров")
tk.geometry("600x600")
btn = ttk.Button(text="Click Me", command=click_button)
btn.pack(anchor="s")
tk.mainloop()**текст, выделенный жирным шрифтом**


Ответы (0 шт):