首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下面程序的输出是“2”是怎样的?好心的人告诉我它是怎么变成2的?

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

Stack Overflow用户
提问于 2020-06-07 22:50:06
回答 3查看 40关注 0票数 0

我试着去理解它。输出如何显示为"2“

代码语言:javascript
复制
def add_one(n):
    return n+1

def my_function(n):
    if n<5: return add_one(n)
    else: return add_one(n-5)

my_function(my_function(10))
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-06-07 23:05:41

2是正确的输出。

首先计算外部my_function()的内部my_function(10)参数。自n > 5以来,add_one(10-5)给出了6。

然后是my_function(6)。仍然是n > 5add_one(6-5)给了2。

记住,add_one()函数只是在n参数上加1

票数 0
EN

Stack Overflow用户

发布于 2020-06-07 22:57:09

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

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

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

您正在调用该函数两次,因此输出为两次。

票数 1
EN

Stack Overflow用户

发布于 2020-06-07 22:58:41

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62247077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档