TypeError: btn_add() missing 1 required positional argument: 'first_number'

Question:

I’m making a calculator in Python using Tkinter, and I’m getting an error im not sure as to why im running into this error but ive legit tried retyping the whole code and cant find anything about it on yt:

`

from tkinter import *

w = Tk()

w.title("Simple Calculator")

ent = Entry()
ent.grid(row=0,column=0,columnspan=3,padx=10,pady=10 )




def button_click(number):
    current = ent.get()
    ent.delete(0,END)
    ent.insert(0,str(current)+str(number))
 
def button_clear():
    ent.delete(0, END)

def button_add(first_number):
    first_number = ent.get()
    global f_num
    f_num = int(first_number)
    ent.delete(END)
    
    

# Defining Button

button_1 = Button(w,text="1",padx=40,pady=20,command=lambda:button_click(1))
button_2 = Button(w,text="2",padx = 40,pady = 20,command=lambda:button_click(2))
button_3 = Button(w,text="3",padx = 40,pady = 20,command=lambda:button_click(3))
button_4 = Button(w,text="4",padx = 40,pady = 20,command=lambda:button_click(4))
button_5 = Button(w,text="5",padx = 40,pady = 20,command=lambda:button_click(5))
button_6 = Button(w,text="6",padx = 40,pady = 20,command=lambda:button_click(6))
button_7 = Button(w,text="7",padx = 40,pady = 20,command=lambda:button_click(7))
button_8 = Button(w,text="8",padx = 40,pady = 20,command=lambda:button_click(8))
button_9 = Button(w,text="9",padx = 40,pady = 20,command=lambda:button_click(9))
button_0 = Button(w,text="0",padx = 40,pady = 20,command=lambda:button_click(0))
button_add = Button(w,text="+",padx=39,pady=20,command=button_add)
button_equal = Button(w,text="=",padx = 91,pady = 20,command=button_click)
button_clear = Button(w,text="CLEAR",padx = 79,pady = 20,command=button_clear)

# Putting button on screen

button_1.grid(row=3,column=0 )
button_2.grid(row=3,column= 1)
button_3.grid(row=3,column= 2)
button_4.grid(row=2,column= 0)
button_5.grid(row=2,column= 1)
button_6.grid(row=2,column= 2)
button_7.grid(row=1,column= 0)
button_8.grid(row=1,column= 1)
button_9.grid(row=1,column= 2)
button_0.grid(row=4,column= 0)
button_clear.grid(row=4,column=1,columnspan=2)
button_add.grid(row=5,column=0)
button_equal.grid(row=5,column=1,columnspan=2)



w.mainloop()

`

i tried everything to fix this error
P.S. I don’t actually know which line the error is on, because it’s saying that the error is on line 1705, even though the code is only 101 lines

Asked By: TheScriptingKing

||

Answers:

The error is where you inherit the Button class to button_add
specifically in command=button_add
You have to add in ‘first_number’ parameter to the command parameter

Answered By: faked grid
def button_add():
    first_number = ent.get()
    global f_num
    f_num = int(first_number)
    ent.delete(END)
Answered By: Seyi Daniel