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

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)

Nae*_*Nae 6

你的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)