如何将返回值存储在变量中并用print显示返回值
修改主函数,在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)
这些都没有被定义。