Python 3.x 当执行第一个return语句时,Python代码不会出现

Python 3.x 当执行第一个return语句时,Python代码不会出现,python-3.x,return-value,Python 3.x,Return Value,我是Python开发的初学者,在Python 3.6上学习Python 当我执行下面的代码时,我希望它在执行第一个return语句时终止,并期望输出4。 但它迭代了3次,输出为8 根据我的理解,一旦执行return语句,它就应该从函数中出来。为什么这没有发生 #/垃圾桶/蟒蛇3 def stockmax(价格): #在这里编写代码 #在这里编写代码 计数=0 利润=0 最大值=最大值(价格) #打印(最大) 指数=价格指数(最大值) #打印(索引最大值) 如果len(prices)在其内部调用s

我是Python开发的初学者,在Python 3.6上学习Python 当我执行下面的代码时,我希望它在执行第一个return语句时终止,并期望输出4。 但它迭代了3次,输出为8

根据我的理解,一旦执行return语句,它就应该从函数中出来。为什么这没有发生

#/垃圾桶/蟒蛇3
def stockmax(价格):
#在这里编写代码
#在这里编写代码
计数=0
利润=0
最大值=最大值(价格)
#打印(最大)
指数=价格指数(最大值)
#打印(索引最大值)

如果len(prices)在其内部调用
stockmax
,则您正在打开一个新的“范围”。我们可以将这些视为建筑物的标高。当你叫它的时候,你实际上是在向上移动一层楼,或是获得一层楼。要回到一楼,或主要的“范围”,你需要回到所有较低的楼层。通过使用
return
稍微提前一点,我们可以轻松地做到这一点。在您的代码中,它看起来有点像这样:

def stockmax(价格):
计数=0
利润=0
最大值=最大值(价格)
指数=价格指数(最大值)
如果是len(价格),欢迎光临。你能不能请你的问题澄清一下为什么你不希望重复
stockmax
包含一个用于
循环的
,它是递归的,因此需要重复。这是你自己的代码还是你从别人那里得到的?