Почему я получаю деление на ноль в приложении tkinter? - PullRequest
0 голосов
/ 04 мая 2020

Я создаю расширенный калькулятор баскетбольной статистики на Tkinter. У меня есть этот класс

 ``` 

class team(): #normal stats, provided by the user
    def __init__(self,name, points, att1, made1, att2, made2, att3, made3, rebof, rebdef, asist, tov):
        self.name=name
        self.points=points
        self.att2=att2
        self.made2=made2
        self.att1=att1
        self.made1=made1
        self.att3=att3
        self.made3=made3
        self.rebof=rebof
        self.rebdef=rebdef
        self.asist=asist
        self.tov=tov

    def calculate_andinsert(self): #THOSE ARE THE FORMULAS FOR GETTING THE ADVANCED STATS

        possesions=int((self.att2+self.att3+(self.att1*0.4)+ self.tov)-self.rebof)

        ofrtg=self.points/possesions #<----------THIS IS WHERE I'M GETTING ERROR-----

        TOVrtg=self.tov/possesions

        FGM=self.made2+self.made3

        FGA=self.att2+self.att3

        TS=(self.points/FGA+(self.att1*0.4  )*2)

        EFG=(0.5*self.made3+FGM)/FGA

        Rebdefrtg=(self.rebdef/self.rebdef+(rebdefaway.get()))*100

        astrtg=(self.asist/possesiones)*100#(tov/possesions)*100

        freethrow_fieldgoal=self.att1/FGA

        resultbox.insert(INSERT, "Possesions: "+ possesions) #resultbox is a text widget where results  are supposed to be printed in

значения каждого аргумента выходят из строковых переменных на указанных c виджетах Entry в программе. Теперь, с помощью этой независимой функции, я получаю эти значения для команды "A", и затем вызовите метод calculate_andinsert()

def Team_a_calculate():
    teamA=team(teamAstringvar.get(), ptslocal.get(), att1local.get(), made1local.get(), att2local.get(),
     made2local.get(), att3local.get(), made3local.get(), reblocal.get(), rebdeflocal.get(), ASTlocal.get(),
      TOlocal.get())
    teamA.calculate_andinsert()

Консоль дает мне

ofrtg=self.points/possesions
ZeroDivisionError: division by zero

Она даже не позволяет мне просто инициализировать программу. Но это не должно быть 0, так как значение possesions еще не рассчитано, программа должна дождаться функции calculate_andinsert(), но для этого мне нужно будет инициализировать программу и поместить значение в запись widget

Извините, если мне не ясно. Я только начинаю кодировать, и у меня нет замечательного английского sh.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...