Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tkinter:无法连接';str';和';浮动';物体_Python_Python 3.x - Fatal编程技术网

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) 你做了什么来解决它请阅读并遵循帮助文档中的发布指南。将问题作为单独的问题发布。。。搜索根本原因后:您将从
标签
中得到
作为返回值,您没有提供代码。