TypeError:'>' 'function'和'int'实例之间不支持

时间:2018-01-01 02:50:45

标签: python tkinter typeerror

我正在尝试编写一个简单的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)    

1 个答案:

答案 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():