添加浮点数和整数在我的计算器中不起作用

问题描述 投票:0回答:1

我曾尝试在youtube和tkinter的帮助下制作一些计算器。一切正常,但可以说我将4除以3可以得到浮点数。如果然后我要添加5,它会给我以下错误:

ValueError: invalid literal for int() with base 10: '0.75'

在线:

def button_add():
    first_num = e.get()
    global f_num
    global math
    math = 'addition'
    f_num = int(first_num) <<<<<<<<<<<
    e.delete(0, END)

我尝试将float()添加到该行,但随后的aswer仅为5,而不是5.75。这是我正在使用的代码:

from tkinter import *

root = Tk()
root.title('Simpele rekenmachine')

e = Entry(root, width=35, borderwidth=5)
e.grid(row=0, column=0, columnspan=3, padx=10, pady=10)

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


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


def button_add():
    first_num = e.get()
    global f_num
    global math
    math = 'addition'
    f_num = int(first_num)
    e.delete(0, END)


def button_equal():
    second_num = e.get()
    e.delete(0, END)

    if math == 'addition':
        e.insert(0, (f_num) + int(second_num))
    if math == 'substraction':
        e.insert(0, f_num - int(second_num))
    if math == 'multiplication':
        e.insert(0, f_num * int(second_num))
    if math == 'division':
        e.insert(0, f_num / int(second_num))
    if math == 'wortel':
        e.insert(0, int(second_num)**(.5))
    if math == 'kwadraat':
        e.insert(0, f_num **(int(second_num)))

def button_sub():
    first_num = e.get()
    global f_num
    global math
    math = 'subtraction'
    f_num = int(first_num)
    e.delete(0, END)


def button_mult():
    first_num = e.get()
    global f_num
    global math
    math = 'multiplication'
    f_num = int(first_num)
    e.delete(0, END)


def button_div():
    first_num = e.get()
    global f_num
    global math
    math = 'division'
    f_num = int(first_num)
    e.delete(0, END)


def button_wortel():
    global math
    math = 'wortel'


def button_kwadraat():
    first_num = e.get()
    global f_num
    global math
    math = 'kwadraat'
    f_num = int(first_num)
    e.delete(0, END)


# Define buttons
button1 = Button(root, text='1', padx=40, pady=20, command=lambda: button_click(1))
button2 = Button(root, text='2', padx=40, pady=20, command=lambda: button_click(2))
button3 = Button(root, text='3', padx=40, pady=20, command=lambda: button_click(3))
button4 = Button(root, text='4', padx=40, pady=20, command=lambda: button_click(4))
button5 = Button(root, text='5', padx=40, pady=20, command=lambda: button_click(5))
button6 = Button(root, text='6', padx=40, pady=20, command=lambda: button_click(6))
button7 = Button(root, text='7', padx=40, pady=20, command=lambda: button_click(7))
button8 = Button(root, text='8', padx=40, pady=20, command=lambda: button_click(8))
button9 = Button(root, text='9', padx=40, pady=20, command=lambda: button_click(9))
button0 = Button(root, text='0', padx=40, pady=20, command=lambda: button_click(0))

buttonadd = Button(root, text='+', padx=40, pady=20, command=button_add, highlightbackground='#A9A9A9')
buttonequal = Button(root, text='=', padx=95, pady=20, command=button_equal, highlightbackground='#005aff')
buttonclear = Button(root, text='AC', padx=95, pady=20, command=button_clear, highlightbackground='#A9A9A9')
buttonsubtr = Button(root, text='-', padx=40, pady=20, command=button_sub, highlightbackground='#A9A9A9')
buttonmulti = Button(root, text='x', padx=40, pady=20, command=button_mult, highlightbackground='#A9A9A9')
buttondivid = Button(root, text='/', padx=40, pady=20, command=button_div, highlightbackground='#A9A9A9')

buttonwortel = Button(root, text='√', padx=40, pady=20, command=button_wortel, highlightbackground='#A9A9A9')
buttonkwadraat = Button(root, text='^', padx=40, pady=20, command=button_kwadraat, highlightbackground='#A9A9A9')


# De knoppen in het scherm zetten
button1.grid(row=3, column=0, sticky="nsew")
button2.grid(row=3, column=1, sticky="nsew")
button3.grid(row=3, column=2, sticky="nsew")

button4.grid(row=2, column=0, sticky="nsew")
button5.grid(row=2, column=1, sticky="nsew")
button6.grid(row=2, column=2, sticky="nsew")

button7.grid(row=1, column=0, sticky="nsew")
button8.grid(row=1, column=1, sticky="nsew")
button9.grid(row=1, column=2, sticky="nsew")

buttonmulti.grid(row=4, column=0, sticky="nsew")
button0.grid(row=4, column=1, sticky="nsew")
buttondivid.grid(row=4, column=2, sticky="nsew")

buttonadd.grid(row=5, column=0, sticky="nsew")
buttonwortel.grid(row=5, column=1, sticky="nsew")
buttonkwadraat.grid(row=5, column=2, sticky="nsew")

buttonclear.grid(row=6, column=1, columnspan=2, sticky="nsew")
buttonsubtr.grid(row=6, column=0, sticky="nsew")

buttonequal.grid(row=7, column=0, columnspan=3, sticky="nsew")

有人知道我应该如何更改代码,以便将0.75加到5,然后显示5.75?

python floating-point integer add calculator
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.