提问者:小点点

下面程序的输出怎么是“2”?? 好心的人告诉我它是怎么变成2的


我试着去理解它。 请有人回答我输出是怎么来的“2”

def add_one(n):返回n+1

def my_function(n):如果n<5:返回add_one(n)否则:返回add_one(n-5)

my_function(my_function(10))


共3个答案

匿名用户

首先,请使用代码标签。 其次,你只需要思考。

10不小于5,所以它会变成6,因为你要减去5加1。

6不小于5,所以它会变成2,因为你要减去5加1。

您将调用该函数两次,因此输出为2。

匿名用户

2是正确的输出。

首先计算外部my_function()的内部my_function(10)参数。 由于N>; 5add_one(10-5)给出6。

那么您就有了my_function(6)。 仍然n>; 5add_one(6-5)给出2。

记住add_one()函数只是将1添加到n参数中

匿名用户

您正在运行my_function(my_function(10))

首先求解my_function(10)my_function(10)将是add_one(5),即6,现在计算my_function(6),即add_one(1),即2