tkinter:无法连接“str”和“float”对象

2024-10-04 05:24:30 发布

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

我想制作一个计算汽油价格的程序,但是我的代码出错了。在

from tkinter import *

root = Tk()
ment = StringVar()

root.geometry('450x450+500+300')
root.title('ბენზმთვლელი')


mlabel2 = Label(root, text='რეგულარი >> '+2.23+ 'GEL').pack()
mlabel3 = Label(root , text = 'ევრო რეგულარი >> '+2.29+' GEL').pack()
mlabel4 = Label(root, text="პრემიუმი >> " + 3.35 + " GEL").pack()
mlabel5 = Label(root, text='დიზელი >> ' + 2.25 + ' GEL').pack()
mlabel6 = Label(root, text='ევრო დიზელი >> '+2.33+' GEL').pack()

mlabel1 = Label(root, text="მიუთითეთ ბენზინის რაოდენობა(ლიტრებში)").pack()
mentry1 = Entry().pack()

mlabel7 = Label(root, text="მიუთითეთ ბენზინის დასახელება(ზემოთ ჩამოთვლილთაგან)").pack()
mentry2 = Entry().pack()

def gamotvla():
    if mlabel7 == mlabel3 or mlabel2 or mlabel4 or mlabel5 or mlabel6:
        print(mlabel1*mlabel7)
    else:
        print('რაღაც შეიყვანე შეცდომით!!')

mbutton = Button(root, text='გამოთვლა',fg="red",bg='black', command=gamotvla).pack()

root.mainloop()

错误:

^{pr2}$

你能帮我吗?在


Tags: ortextrootlabelpackentrygelmlabel2
2条回答

让我们看看有问题的那条线,找出其中的一些问题。 下面是一行:

mlabel2 = Label(root, text='რეგულარი >> '+2.23+ 'GEL').pack()

您正在连接一个字符串、一个浮点和另一个字符串。解决这个问题最简单的方法是使用一些字符串格式表达式,比如

^{pr2}$

对于Python3代码来说,这是一个很好的解决方案。。。请注意,{num}是一个格式化命令,它将被您的float替换。还有其他方法可以处理这个问题,但是由于您使用的是python3,所以我将使用这个方法。另外,因为这个数字在不同的标签上都有变化,所以我把它分开,这样就很容易处理了。在

另外,请记住,由于返回None.pack()命令,您的mlabel2在代码中将是None。如果你想保存mlabel2,你必须把语句分成两部分。。。在

mlabel2 = Label(root, .... GEL')
mlabel2.pack()

这对于大多数小部件都是一样的,包括标签、条目和按钮。您的def gamotvla():中的if语句也会给您带来问题,但让我们从这些开始。在

这一行足以引起问题:

text='რეგულარი >> '+2.23+ 'GEL'

2.23是浮点值;'GEL'是字符串。加上一个算术值和一个字母串意味着什么?在

如果需要字符串标签'რეგულარი >> 2.23 GEL',那么就这样写。如果要从零件构造它,请将值转换为字符串:

^{pr2}$

相关问题 更多 >