从条目*storedpri设置输出时出现计算函数错误

2024-09-28 22:24:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我的程序没有设置函数的输出结果

我有一个图形用户界面,他们可以从3种食物中挑选,然后根据自己的需要确定体重。他们点击Calculate按钮,它调用一个函数,在这个函数中,is获取重量并*通过存储的价格

我得到错误:TypeError:无法将序列与'list'类型的非int相乘

程序代码:

from tkinter import *

#libary of feed cost and size
Pellets = ['Pellets', 22.75, 100.00] #name, 10kg cost, 50kg cost
Mash = ['Mash', 20.50, 90.00] #name, 10kg cost, 50kg cost
Enhanced = ['Enhanced', 25.50, 125.50] #name, 10kg cost, 50kg cost
Size = ['10KG', '50KG'] #weight 1, weight 1

def close_window(): 
    window.destroy()


def totalcost1():
    weightneeded = [float(weight.get())]
    pellets10kg = [float(Pellets[1])]
    totalCost =  (weightneeded*pellets10kg)
    resultTotalCost.set("${0:,.2f}".format(totalCost))

window = Tk()
window.geometry("1000x500")
window.resizable(0, 0)
window.title("Chook Food Calcuator")

lblFoodList = Label(window, text='Please Select a food type:')
lblFoodList.grid(column=1, row=0, padx=12, pady=25)

#Food Selection Dropdown Menu
FoodSelection = StringVar(window)
FoodSelection.set("Pellets") # default value


#list of foods
x = OptionMenu(window, FoodSelection, Pellets[0], Mash[0], Enhanced[0])
x.grid(column=2, row=0, sticky="e")


lblFoodList = Label(window, text='Please Select the total weight of food you wish to buy:')
lblFoodList.grid(column=1, row=1, padx=25, pady=50, sticky='n')

weight = StringVar()
entWeight = Entry(window, width=20, textvariable=weight)
entWeight.grid(column=2, row=1, padx=25, pady=50, sticky='n')

btnCalculate = Button(window, text='Calculate', command=totalcost1)
btnCalculate.grid(column=3, row=1, padx=25, pady=25, sticky='e')


lblTotalCost = Label(window, text='Total Cost:')
lblTotalCost.grid(column=1, row=3, padx=25, pady=25)

resultTotalCost = StringVar()
entTotalCost = Entry(window, width=20,  textvariable=resultTotalCost, state="readonly")
entTotalCost.grid(column=2, row=3, padx=25, pady=50, sticky='n')

btnQuit = Button(window, text='Quit', command=close_window)
btnQuit.grid(column=6, row=4, sticky='se')


window.mainloop( )

对于当前代码,我需要输出为(输入*storedprice)


Tags: of函数textnamecolumnwindowgridrow
2条回答

我没有把重量定为整数,这是我知道的

def totalcost1():
    inputwieght = int(weight.get())
    totalCost =  inputwieght*Pellets[1]
    resultTotalCost.set("${0:,.2f}".format(totalCost))

错误就在这里

weightneeded = [float(weight.get())]

pellets10kg = [float(Pellets[1])]

试着打印

print(weightneeded)

print(pellets10kg)

似乎您正试图将两个列表对象相乘,正如python对您所说的

get error: TypeError: can't multiply sequence by non-int of type 'list'

试试看

def totalcost1():
    weightneeded = float(weight.get())
    pellets10kg = float(Pellets[1])
    print(weightneeded)
    print(pellets10kg)
    totalCost =  (weightneeded*pellets10kg)
    resultTotalCost.set("${0:,.2f}".format(totalCost))

相关问题 更多 >