Myk*_*yko 0 python tkinter typeerror
我正在尝试编写一个简单的coinflip类型游戏,当我运行它时,我得到错误:
if ticket > 50:
TypeError: '>' not supported between instances of 'function' and 'int'
Run Code Online (Sandbox Code Playgroud)
我真的不明白我做错了什么.对我来说似乎一切都很好,但是当我运行它时,它给了我这个我早先写的错误.任何帮助都非常感谢.这是我的代码:
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)
Run Code Online (Sandbox Code Playgroud)
你的ticket变量被你的函数变量覆盖了ticket.这会让你得到一个错误意味着你无法将橙子(函数)与苹果(整数)进行比较.重命名任何一个它应该工作正常.
要么替换:
global ticket
ticket = decimal.Decimal(random.randrange(0, 100))
Run Code Online (Sandbox Code Playgroud)
有:
global anything_but_ticket
anything_but_ticket = decimal.Decimal(random.randrange(0, 100))
Run Code Online (Sandbox Code Playgroud)
或者:
def ticket():
Run Code Online (Sandbox Code Playgroud)
有:
def anything_but_ticket():
Run Code Online (Sandbox Code Playgroud)