在我的计算器程序中添加一个函数。(Python)

make a add function in my calculalor program.(Python)

你好,我想做一个家庭作业计算器。 简单的描述是当我将光标放在 entry1 和 entry2 上然后我单击按钮时,在条目中输入的数字相互。 按钮功能完美 但是其他功能不起作用。

from tkinter import *

res_text = ' '
window = Tk()
window.title("계산기")
window.geometry('350x500')
num1 = Label(window, text='입력값 :').grid(column=0, row=0)
num2 = Label(window, text='입력값 :').grid(column=0, row=1)
res_label = Label(window, text='출력값 :', )
res_label.grid(column=0, row=2)

entry1 = Entry(window)
entry1.grid(column=1, row=0)
entry2 = Entry(window)
entry2.grid(column=1, row=1)

entry3 = Entry(window)
entry3.grid(column=1, row=2) # it is result entry

这是对计算器的忽视

def add():

    a = float(entry1.get())
    b = float(entry2.get())
    c = a + b
    global res_text
    res_text= c

这就是我想要工作的功能 我认为“entry1.get()”是一个 str 对象,所以 a 和 b 转换为浮点数并添加 a 和 b 但解释器显示错误 ValueError:无法将字符串转换为浮点数:''

def result():
    global res_text
    entry3.insert(0, res_text)

它是一个结果函数

我能做些什么来解决它。请给我一个答案 我试图用我所有的激情一周。

可能您需要在entry1 和entry2 中输入号码。 否则 entry1.get() 为空。将 str 转换为 float 将显示错误 ValueError: could not convert string to float: ''

from tkinter import *

res_text = ' '
window = Tk()
window.title("계산기")
window.geometry('350x500')
num1 = Label(window, text='입력값 :').grid(column=0, row=0)
num2 = Label(window, text='입력값 :').grid(column=0, row=1)
res_label = Label(window, text='출력값 :', )
res_label.grid(column=0, row=2)

entry1 = Entry(window)
entry1.grid(column=1, row=0)
entry2 = Entry(window)
entry2.grid(column=1, row=1)

entry3 = Entry(window)
entry3.grid(column=1, row=2) # it is result entry

def add():
    if entry1.get().isdigit() == False or entry2.get().isdigit() == False:
        return
    
    a = float(entry1.get())
    b = float(entry2.get())
    c = a + b
    global res_text
    res_text= c
    
def result():
    global res_text
    entry3.insert(0, res_text)
    
button = Button(window, text="add", command=add)
button.grid(column=0, row=3)
    
window.mainloop()

您不需要 result() 函数,您的代码中甚至没有调用它。这使程序更简单,因为您不需要全局变量。您必须注意可以将文本(又名 str)插入 entry3。

from tkinter import *

res_text = ' '
window = Tk()
window.title("계산기")
window.geometry('350x500')
num1 = Label(window, text='입력값 :').grid(column=0, row=0)
num2 = Label(window, text='입력값 :').grid(column=0, row=1)
res_label = Label(window, text='출력값 :', )
res_label.grid(column=0, row=2)

entry1 = Entry(window)
entry1.grid(column=1, row=0)
entry2 = Entry(window)
entry2.grid(column=1, row=1)

entry3 = Entry(window)
entry3.grid(column=1, row=2) # it is result entry

def add():
    if entry1.get().isdigit() == False or entry2.get().isdigit() == False:
        return
    
    a = float(entry1.get())
    b = float(entry2.get())
    c = a + b
    entry3.insert(0, str(c))
    
    
button = Button(window, text="add", command=add)
button.grid(column=0, row=3)
    
window.mainloop()

如果您需要 result 函数,那么您当然可以将部分代码移至其中,但在那种情况下您必须调用它。