繁体   English   中英

尝试对条目中提供的整数进行数学运算时出错

[英]Error when trying to do math on integers provided in an Entry

我试图创建一个成绩计算器,为用户输入类别的权重以及其分数超过总分数的输入。 然后,我想输出其成绩(以%为单位)。 但是,尝试在框中输入文本时,我收到一条错误消息,提示未定义我的条目。

错误消息: https//gyazo.com/1d9c5a086a7d369b69500d5399d4b08e

看一看:

from Tkinter import *
import random

player = 1
count=0

menu=Tk()

menu.wm_title("Percentage Calculator")

def Calculate():

    global  a1
    global  a2

    global  b1
    global  b2

    global  c1
    global  c2

    global  d1
    global  d2

    tval=int(tvalue.get())
    aval=int(avalue.get())
    cval=int(cvalue.get())
    kval=int(kvalue.get())

    a1v=float(a1.get())
    a2v=float(a2.get())

    total_t=(((a1v/a2v)*100)/tval)

    b1v=float(bl.get())
    b2v=float(b2.get())

    total_a=(((b1v/b2v)*100)/aval)

    c1v=float(cl.get())
    c2v=float(c2.get())

    total_c=(((c1v/c2v)*100)/cval)

    d1v=float(dl.get())
    d2v=float(d2.get())

    total_k=(((d1v/d2v)*100)/kval)

menutext=Label(text="Enter Percentages:",font="Arial 15")
menutext.grid(row=0,column=0,columnspan=4,sticky="NS,WE")

t=Label(text="T",font="Arial 15")
t.grid(row=1,column=0,sticky="NS,WE")

a=Label(text="A",font="Arial 15")
a.grid(row=1,column=1,sticky="NS,WE")

c=Label(text="C",font="Arial 15")
c.grid(row=1,column=2,sticky="NS,WE")

k=Label(text="K",font="Arial 15")
k.grid(row=1,column=3,sticky="NS,WE")

tvalue=Entry(font="Arial 15")
tvalue.grid(row=2,column=0,sticky="NS,WE")

avalue=Entry(font="Arial 15")
avalue.grid(row=2,column=1,sticky="NS,WE")

cvalue=Entry(font="Arial 15")
cvalue.grid(row=2,column=2,sticky="NS,WE")

kvalue=Entry(font="Arial 15")
kvalue.grid(row=2,column=3,sticky="NS,WE")

calcbutton=Button(text=" Calculate ",font="Arial 15",command=Calculate)
calcbutton.grid(row=10,column=0,columnspan=4,sticky="NS,WE")

menutext2=Label(text="Enter Marks:",font="Arial 15")
menutext2.grid(row=3,column=0,columnspan=4,sticky="NS,WE")

a1=Entry(font="Arial 15")
a1.grid(row=4,column=0,sticky="NS,WE")

a2=Entry(font="Arial 15")
a2.grid(row=4,column=1,sticky="NS,WE")

b1=Entry(font="Arial 15")
b1.grid(row=4,column=2,sticky="NS,WE")

b2=Entry(font="Arial 15")
b2.grid(row=4,column=3,sticky="NS,WE")

c1=Entry(font="Arial 15")
c1.grid(row=5,column=0,sticky="NS,WE")

c2=Entry(font="Arial 15")
c2.grid(row=5,column=1,sticky="NS,WE")

d1=Entry(font="Arial 15")
d1.grid(row=5,column=2,sticky="NS,WE")

d2=Entry(font="Arial 15")
d2.grid(row=5,column=3,sticky="NS,WE")


def AnswerDisplay():

    ##this is not complete yet, ignore

    answerlabel=Label(text="Results Are...",font="Arial 15")
    answerlabel.grid(row=7,column=0,columnspan=4,sticky="NS,WE")

    a1ans=Label(text="null",font="Arial 20")
    a1ans.grid(row=8,column=0,sticky="NS,WE")

    b1ans=Label(text="null",font="Arial 20")
    b1ans.grid(row=8,column=1,sticky="NS,WE")

    c1ans=Label(text="null",font="Arial 20")
    c1ans.grid(row=8,column=2,sticky="NS,WE")

    d1ans=Label(text="null",font="Arial 20")
    d1ans.grid(row=8,column=3,sticky="NS,WE")


menu.mainloop()

您在此行中将小写的“ L”与数字1混合在一起:

b1v=float(bl.get())

它必须是:

b1v=float(b1.get())

在其他地方也一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM