Python Tkinter标签,TypeError:无法连接';str';和';实例';物体

Python Tkinter标签,TypeError:无法连接';str';和';实例';物体,python,tkinter,concatenation,typeerror,Python,Tkinter,Concatenation,Typeerror,我正在编写一个骰子模拟器,可以掷6面骰子或8面骰子。我正在使用Python2.7和Tkinter。这是我的文件,里面有一本字典,里面有骰子: DICE = dict( sixsided={'name': 'Six Sided Dice', 'side': 6}, eightsided = {'name': 'Eight Sided Dice', 'side': 8} ) names = ['Six Sided

我正在编写一个骰子模拟器,可以掷6面骰子或8面骰子。我正在使用Python2.7和Tkinter。这是我的文件,里面有一本字典,里面有骰子:

DICE = dict(
    sixsided={'name': 'Six Sided Dice',
              'side': 6},
    eightsided = {'name': 'Eight Sided Dice',
                  'side': 8}
    )
names = ['Six Sided Dice', 'Eight Sided Dice']
这是我的主文件中导致我的问题的代码:

diceroll = random.randrange(1,DICE[selecteddice]["side"])
Label(diceroll, text="You rolled a " + diceroll + " on the " + DICE[selecteddice]["name"])
我的问题是运行文件时出现的错误消息:

TypeError:无法连接'str'和'instance'对象


非常感谢您的帮助!!:)

希望你期待着这样的事情:

您必须将
Tk()
类作为
从Tkinter import*
导入,作为第一个参数传递给Tk小部件:

root = Tk()
Label(root, text="You rolled a " + diceroll + " on the " + DICE[selecteddice]["name"])
但是现在您将得到
TypeError:无法连接'str'和'int'对象
,因此请使用
str()
方法将
dicerll
转换为字符串

Label(root, text="You rolled a " + str(diceroll) + " on the " + DICE[selecteddice]["name"])
TypeError:无法连接'str'和'instance'对象
发生错误的原因是,如果不使用
\uuu repr\uuu
\uu str\uu
方法,而不是对象,则无法从类中以字符串或int形式检索数据

因为您还没有显示完整的代码,所以我只能提供帮助

#The top image was produced thanks to this
import random
from Tkinter import *

selecteddice = 'sixsided'

DICE = dict(
    sixsided={'name': 'Six Sided Dice',
              'side': 6},
    eightsided = {'name': 'Eight Sided Dice',
                  'side': 8}
    )
names = ['Six Sided Dice', 'Eight Sided Dice']

root = Tk()

diceroll = random.randrange(1,DICE[selecteddice]["side"])
Label(root, text="You rolled a " + str(diceroll) + " on the " + DICE[selecteddice]["name"]).pack()

root.mainloop()

希望你期待着这样的事情:

您必须将
Tk()
类作为
从Tkinter import*
导入,作为第一个参数传递给Tk小部件:

root = Tk()
Label(root, text="You rolled a " + diceroll + " on the " + DICE[selecteddice]["name"])
但是现在您将得到
TypeError:无法连接'str'和'int'对象
,因此请使用
str()
方法将
dicerll
转换为字符串

Label(root, text="You rolled a " + str(diceroll) + " on the " + DICE[selecteddice]["name"])
TypeError:无法连接'str'和'instance'对象
发生错误的原因是,如果不使用
\uuu repr\uuu
\uu str\uu
方法,而不是对象,则无法从类中以字符串或int形式检索数据

因为您还没有显示完整的代码,所以我只能提供帮助

#The top image was produced thanks to this
import random
from Tkinter import *

selecteddice = 'sixsided'

DICE = dict(
    sixsided={'name': 'Six Sided Dice',
              'side': 6},
    eightsided = {'name': 'Eight Sided Dice',
                  'side': 8}
    )
names = ['Six Sided Dice', 'Eight Sided Dice']

root = Tk()

diceroll = random.randrange(1,DICE[selecteddice]["side"])
Label(root, text="You rolled a " + str(diceroll) + " on the " + DICE[selecteddice]["name"]).pack()

root.mainloop()