【发布时间】:2016-11-06 19:24:49
【问题描述】:
我是编程领域的新手。我很难理解这段代码的本质。
import time
from random import randint
replies =["Yes","No","Possibly", "Ask again later", "IDK"]
def question():
print "What is your question?"
question = raw_input()
print "Thinking"
time.sleep(3)
print replies[randint(0,4)]
end()
def end():
print "Thanks for playing! Do you want to try again?"
user_reply = raw_input()
if user_reply == "yes":
question()
print "Welcome to the magic 8-ball"
question()
我的问题是:
- 如您所见,end() 函数在 question() 函数中被调用。假设我继续玩游戏。以前的调用者会发生什么,尤其是第一个问题()?它还开着吗?还是在调用 end() 函数后关闭。
- 只要我继续玩游戏,那会建立记忆吗?我知道一旦函数结束,内存就会被清除,但在这段代码中,它只是不断调用一个函数。只有关闭程序才能结束。
谢谢。
【问题讨论】:
-
这是一种递归,但由于您不是在使用汇编或 C 编程,因此您不必担心,python 本身会以适当的方式处理内存和开销,除非您在循环中执行此操作很多次
标签: python python-3.x