[Решено] Сборка калькулятора с tkinter - PullRequest
0 голосов
/ 05 августа 2020

Когда я запускаю свой код, я получаю эту ошибку: ValueError: недопустимый литерал для int () с базой 10: '' Я нашел причину ошибки, но не знаю, как ее исправить (я буду укажите с комментарием, где находится ошибка). Вот код. Любой совет.

from tkinter import * 

root = Tk()
root.title('shitty calculator')

numbers = []
number = 0
e = Entry(root, width = 30, borderwidth = 5)
e.grid(row = 0, column = 0, columnspan = 3, padx = 10, pady = 10)

#Getting a number

def button_add_def(number):
    global current
    current = e.get()
    e.delete(0, END)
    e.insert(0, str(current) + str(number))

#Clearing all numbers

def button_clear_def():
    e.delete(0, END)

#Adding a number

def button_plus_def():
    numbers.append(e.get())
    e.delete(0, END)

#Printing the final result

def button_equal_def():
    global number,numbers
    for i in numbers:
        number += int(i)
    number += int(current)#Here is the error
    e.delete(0,END)
    e.insert(0, number)   
    numbers = []
    number = 0

# Define buttons

button_1 = Button(root, text = '1', padx = 40, pady = 20 , command = lambda: button_add_def(1))
button_2 = Button(root, text = '2', padx = 40, pady = 20, command = lambda: button_add_def(2))
button_3 = Button(root, text = '3', padx = 40, pady = 20, command = lambda: button_add_def(3))
button_plus = Button(root, text = '+', padx = 39, pady = 20, command = lambda: button_plus_def())
button_equal = Button(root, text = '=', padx = 85, pady = 20, command = lambda: button_equal_def())
button_clear = Button(root, text = 'Clear', padx = 75, pady = 20, command = button_clear_def)

# Put the buttons on the screen

button_1.grid(row = '1', column = '0')
button_2.grid(row = '1', column = '1')
button_3.grid(row = '1', column = '2')

button_clear.grid(row = '4', column = '1', columnspan = 2)
button_plus.grid(row = '5', column = '0')
button_equal.grid(row = '5', column = '1', columnspan = 2)

root.mainloop()

Я использую vscode. Я удалил числа от 4 до 9, чтобы не утомлять вас ими. Извините, если я у меня плохая грамматика. английский sh не мой родной язык и мне 14 лет.

...