gpt4 book ai didi

python - Tkinter 标签,类型错误 : cannot concatenate 'str' and 'instance' objects

转载 作者:太空宇宙 更新时间:2023-11-03 18:47:57 25 4
gpt4 key购买 nike

我正在编写一个骰子模拟器,可以掷 6 面骰子或 8 面骰子。我正在使用 Python 2.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"])

我的问题是运行文件时出现的错误消息:

类型错误:无法连接“str”和“instance”对象

非常感谢任何帮助! :)

最佳答案

希望您期待这样的事情:

Example window

您必须传递 Tk()假设它是作为 from Tkinter import * 作为 Tk 小部件的第一个参数导入的:

root = Tk()
Label(root, text="You rolled a " + diceroll + " on the " + DICE[selecteddice]["name"])

但是现在你最终会得到TypeError:cannot concatenate 'str' and 'int'objects所以使用str()方法来转换diceroll 到字符串

Label(root, text="You rolled a " + str(diceroll) + " on the " + DICE[selecteddice]["name"])

类型错误:无法连接“str”和“instance”对象发生错误的原因是,如果不使用 __repr____str__ 方法,则无法从类中以字符串或整数形式检索数据,而是以对象形式检索数据

由于您还没有显示完整的代码,这就是我能提供的帮助

#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()

关于python - Tkinter 标签,类型错误 : cannot concatenate 'str' and 'instance' objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19065690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com