我正在尝试编写一个简单的coinflip类型游戏,当我运行它时,我收到错误:
if ticket > 50:
TypeError: '>' not supported between instances of 'function' and 'int'
我真的不明白我做错了什么。对我来说似乎一切都很好,但是当我运行它时,它给了我这个我早先写的错误。任何帮助都非常感谢。这是我的代码:
def flip():
if player_ticket > 50:
if ticket > 50:
result = Label(mainFrame, text="YOU WON!!!", fg="green")
result.grid(row=3, columnspan=2)
else:
result = Label(mainFrame, text="YOU LOST!!!", fg="red")
result.grid(row=3, columnspan=2)
else:
if player_ticket < 50:
if ticket < 50:
result = Label(mainFrame, text="YOU WON!!!", fg="green")
result.grid(row=3, columnspan=2)
else:
result = Label(mainFrame, text="YOU LOST!!!", fg="red")
result.grid(row=3, columnspan=2)
def ticket_heads():
global player_ticket
player_ticket = decimal.Decimal(random.randrange(0, 50))
def ticket_tails():
global player_ticket
player_ticket = decimal.Decimal(random.randrange(50, 100))
def ticket():
global ticket
ticket = decimal.Decimal(random.randrange(0, 100))
heads_text = Label(mainFrame, text="Heads")
heads_text.grid(row=0, column=0)
tails_text = Label(mainFrame, text="Tails")
tails_text.grid(row=0, column=1)
heads_select = Button(mainFrame, text="Select", command=ticket_heads)
heads_select.grid(row=1, column=0)
tails_select = Button(mainFrame, text="Select", command=ticket_tails)
tails_select.grid(row=1, column=1)
flipit = Button(mainFrame, text="Flip It!", command=flip)
flipit.grid(row=2, columnspan=2)
答案 0 :(得分:6)
您的ticket
变量会被您的函数变量ticket
覆盖。这会让你得到一个错误意味着你无法将橙子(函数)与苹果(整数)进行比较。重命名任何一个,它应该工作正常。
替换:
global ticket
ticket = decimal.Decimal(random.randrange(0, 100))
使用:
global anything_but_ticket
anything_but_ticket = decimal.Decimal(random.randrange(0, 100))
<强> 或 强>:
def ticket():
使用:
def anything_but_ticket():