Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3312.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 1892, in __call__
return self.func(*args)
File "C:\Users\Finja\PycharmProjects\Calculator\main.py", line 31, in b_equal
e.insert(0, f_num + int(second_number))
ValueError: invalid literal for int() with base 10: ''
Mir fällt nicht ein wie ich das beheben könnte, deshalb meine Frage ob mir irgendjemand dabei helfen kann.
Hier der Code:
Code: Alles auswählen
import math
from math import sqrt
from tkinter import *
root = Tk()
root.title("Calculator")
e = Entry(root, width=35, borderwidth=5)
e.grid(row=0, column=0, columnspan=3, padx=10, pady=10)
#e.insert(0, "")
def b_clear():
e.delete(0, END)
def b_clicked(number):
current = e.get()
e.delete(0, END)
e.insert(0,str(current) + str(number))
def b_add():
first_number = e.get()
global f_num
global math
math = "addition"
f_num = int(first_number)
e.delete(0, END)
def b_equal():
e.delete(0, END)
second_number = e.get()
if math == "addition":
e.insert(0, f_num + int(second_number))
if math == "subtraction":
e.insert(0, f_num - int(second_number))
if math == "multiplication":
e.insert(0, f_num * int(second_number))
if math == "division":
e.insert(0, f_num / int(second_number))
def b_sub():
first_number = e.get()
global f_num
global math
math = "subtraction"
f_num = int(first_number)
e.delete(0, END)
def b_mul():
first_number = e.get()
global f_num
global math
math = "multiplication"
f_num = int(first_number)
e.delete(0, END)
def b_div():
first_number = e.get()
global f_num
global math
math = "division"
f_num = int(first_number)
e.delete(0, END)
# Creat oru buttons
b1 = Button(root, text='1', padx=40, pady=20, command=lambda: b_clicked(1))
b2 = Button(root, text='2', padx=40, pady=20, command=lambda: b_clicked(2))
b3 = Button(root, text='3', padx=40, pady=20, command=lambda: b_clicked(3))
b4 = Button(root, text='4', padx=40, pady=20, command=lambda: b_clicked(4))
b5 = Button(root, text='5', padx=40, pady=20, command=lambda: b_clicked(5))
b6 = Button(root, text='6', padx=40, pady=20, command=lambda: b_clicked(6))
b7 = Button(root, text='7', padx=40, pady=20, command=lambda: b_clicked(7))
b8 = Button(root, text='8', padx=40, pady=20, command=lambda: b_clicked(8))
b9 = Button(root, text='9', padx=40, pady=20, command=lambda: b_clicked(9))
b0 = Button(root, text='0', padx=40, pady=20, command=lambda: b_clicked(0))
badd = Button(root, text='+', padx=39, pady=20, command=b_add)
bsub = Button(root, text='-', padx=41, pady=20, command=b_sub)
bmul = Button(root, text='*', padx=40, pady=20, command=b_mul)
bdiv = Button(root, text='/', padx=41, pady=20, command=b_div)
bequal = Button(root, text='=', padx=91, pady=20, command=b_equal)
bclear = Button(root, text='Clear', padx=79, pady=20, command=b_clear)
# Put the Buttons on the screen
b1.grid(row=3, column=0)
b2.grid(row=3, column=1)
b3.grid(row=3, column=2)
b4.grid(row=2, column=0)
b5.grid(row=2, column=1)
b6.grid(row=2, column=2)
b7.grid(row=1, column=0)
b8.grid(row=1, column=1)
b9.grid(row=1, column=2)
b0.grid(row=4, column=0)
badd.grid(row=5, column=0)
bsub.grid(row=6, column=0)
bmul.grid(row=6, column=1)
bdiv.grid(row=6, column=2)
bequal.grid(row=4, column=1, columnspan=2)
bclear.grid(row=5, column=1, columnspan=2)
root.mainloop()