Python tkinter:无法连接';str';和';浮动';物体
我想编一个程序来计算汽油价格,但我的代码出错了Python tkinter:无法连接';str';和';浮动';物体,python,python-3.x,Python,Python 3.x,我想编一个程序来计算汽油价格,但我的代码出错了 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 = 'ევრო რეგულა
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()
错误:
Traceback (most recent call last):
File "/home/zura12337/Desktop/Python/Atom/tk.py", line 11, in <module>
mlabel2 = Label(root, text='რეგულარი >> '+2.23+ 'GEL').pack()
TypeError: cannot concatenate 'str' and 'float' objects
回溯(最近一次呼叫最后一次):
文件“/home/zura12337/Desktop/Python/Atom/tk.py”,第11行,在
mlabel2=标签(根,文本=)რეგულარი >> '+2.23+凝胶“).pack()
TypeError:无法连接'str'和'float'对象
你能帮我吗?这一行足以引起问题:
text='რეგულარი >> '+2.23+ 'GEL'
2.23
是一个浮点值<代码>'GEL'是一个字符串。添加算术值和一串字母意味着什么
如果需要字符串标签'რეგულარი >> 2.23“GEL”
,然后这样写。如果要从零件构造,请将值转换为字符串:
text = 'რეგულარი >> ' + str(2.23) + 'GEL'
让我们看看这条有问题的线,并找出它的一些问题。 这是一句话:
mlabel2 = Label(root, text='რეგულარი >> '+2.23+ 'GEL').pack()
您正在连接一个字符串、一个浮点和另一个字符串。解决这个问题的最简单方法是使用一些字符串格式的表达式,比如
mlabel2 = Label(root, text='რეგულარი >> {num} GEL'.format(num=2.23))
这对于Python3代码来说是一个很好的解决方案。。。请注意,{num}
是一个格式化命令,它将被浮点替换。还有其他方法可以处理这个问题,但由于您使用的是Python3,所以我会使用这个方法。另外,由于不同标签上的数字不同,所以我将其分开,以便于处理
另外,请记住,由于.pack()
命令返回None,因此mlabel2在代码中将是None。如果要保留mlabel2,必须将语句分成两部分
mlabel2 = Label(root, .... GEL')
mlabel2.pack()
这对于大多数小部件都是一样的,包括标签、条目和按钮。
def gamotvla():
中的if
语句也会给您带来问题,但让我们从这些问题开始。您好,您从以下错误消息中得到了什么<代码>类型错误:无法连接'str'和'float'对象。此外,这只是一个Python问题,与Atom无关。是的,它是我的。为什么要在字符串中添加数字?你认为那应该做什么?我知道那不是真的,但我不知道如何修复它:在我们知道你想做什么之前,我们无法帮助告诉你如何修复它。你觉得怎么样რეგულარი >> '+2.23+凝胶是什么?您是否正在尝试创建一个字符串,如რეგულარი >> 2.23GEL'
?嘿,还有一个问题!:D Tkinter回调回溯中的异常(最近一次调用最后一次):文件“/usr/lib/python2.7/lib tk/Tkinter.py”,第1544行,调用返回self.func(*args)文件“/home/zura12337/Desktop/Python/Atom/tk.py”,第25行,gamotvla打印(mlabel1*mlabel7)类型错误:不支持的操作数类型*:'NoneType'和'NoneType'(1)这是另一个问题;(2) 你做了什么来解决它请阅读并遵循帮助文档中的发布指南。将问题作为单独的问题发布。。。搜索根本原因后:您将从标签
中得到无
作为返回值,您没有提供代码。