Я пытался создать квадратную root функцию, используя код с веб-сайта , который объясняет, как создать калькулятор tkinter. Полный код программы должен быть в середине веб-сайта.
Я попытался повторно использовать код со знака равенства, чтобы создать квадратную кнопку root, которая бы имела квадрат * 1016. * все, что вводится в поле ввода. Я помещаю код в def __init__(self):
вместе с остальным кодом. Вот код, который я добавил в программу:
sqButton = iCalc(self, TOP)
for iEquals in "√":
btniEquals = button(sqButton, LEFT, iEquals)
btniEquals.bind('<ButtonRelease-1>', lambda e, s=self,
storeObj=display: math.sqrt(s.calc(storeObj)))
При попытке сделать это я получаю ошибку.
line 50, in <lambda> storeObj=display: math.sqrt(s.calc(storeObj)))
TypeError: must be real number, not NoneType
I go к источнику проблемы, который является кодом над. Попытка изменить «лямбда» дала бы мне синтаксическую ошибку, поэтому я не уверен, что мне следует сделать, чтобы изменить ее так, чтобы она функционировала так, как ожидалось. Насколько я могу судить, "e" после функции дает мне NoneType, который останавливает работу кода, я попытался окружить s.calc(storeObj)
в float, но это не устраняет ошибку, и я добавил импорт математики в верхней части программы, поэтому math.sqrt должен работать. Я не новичок в этом, поэтому я точно не знаю, что мне нужно изменить, чтобы это работало.