如何将返回值存储在变量中并用print显示返回值

0 投票
1 回答
998 浏览
提问于 2025-04-16 06:11

修改主函数,在while循环中win.getMouse()调用之后,立即调用getAction。把返回的值存储在一个叫做action的变量里,然后用print来显示这个返回的值。

这是我目前的代码。我遇到的问题是怎么把返回的值放在一个叫做action的变量里,然后用print来显示这个返回的值。

ACTION_PET = 1
ACTION_FEED = 2
ACTION_PLAY = 3
ACTION_IGNORE = 4
ACTION_ERROR = 5

def getAction():

    win = GraphWin("CS1400 - Pet Dog", 610, 500) 
    clear_screen(win)                            
    rec1, rec2, rec3, rec4= draw_buttons(win)
        while True:
            mouseClick = win.getMouse()                  

            if inBox(rec1, mouseClick):
                ACTION_PET(win)                            
            elif inBox(rec2, mouseClick):
                ACTION_FEED(win)                            
            elif inBox(rec3, mouseClick):
                ACTION_PLAY(win)                         
            elif inBox(rec4, mouseClick):
                ACTION_IGNORE(win)
            else:
                ACTION_ERROR(win)

                break                  


# main program

def main():
    """dog drawing program"""

    win = GraphWin("CS1400 - Pet Dog", 610, 500)      # create graphics window
    clear_screen(win)                                # start with a clear screen
    rec1, rec2, rec3, rec4= draw_buttons(win)        # create user buttons

    # loop forever until cat is dead
    while True:
        mouseClick = win.getMouse()
                                                     # get mouse click

        if inBox(rec1, mouseClick):
            drawHappy(win)                            # draw happy dog
        elif inBox(rec2, mouseClick):
            drawAngry(win)                            # draw angry dog
        elif inBox(rec3, mouseClick):
            drawSleeping(win)                         # draw sleeping dog
        elif inBox(rec4, mouseClick):
            drawBored(win)                            # draw bored dog

            break



    # wait for user to click one more time before ending the program
    msg_location = Point(305, 430)
    msg = Text(msg_location, "Click anywhere to quit.")
    msg.setTextColor("red")
    msg.draw(win)                         # draw message

    win.close()
    return

1 个回答

0

你的代码里有很多明显的问题。

ACTION_PET(win) 这行会报错,错误信息是 TypeError: 'int' object is not callable,意思是你试图把一个数字当成函数来用。

return the value in a variable named action 这里提到的“值”指的是什么呢?

if inBox(rec1, mouseClick): 这个 inBox() 是在哪里定义的呢?


if inBox(rec1, mouseClick):
            drawHappy(win)                            # draw happy dog
        elif inBox(rec2, mouseClick):
            drawAngry(win)                            # draw angry dog
        elif inBox(rec3, mouseClick):
            drawSleeping(win)                         # draw sleeping dog
        elif inBox(rec4, mouseClick):
            drawBored(win)     

这些都没有被定义。

撰写回答