刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

单选题

运行如下代码,请输出运算结果?( )

def fun(lst):
   if len(lst) == 0:
       return 0
   return lst[0] + fun(lst[1:])
x = [1,2,3,4,5]
print(fun(x))


A
9
B
6
C
10
D
15
使用微信搜索喵呜刷题,轻松应对考试!

答案:

D

解析:

这是一个递归函数的问题。函数fun接受一个列表lst作为参数,如果列表的长度是0,则返回0;否则,返回列表的第一个元素加上对剩余列表(除第一个元素外)调用fun函数的结果。对于列表x = [1,2,3,4,5],其递归过程如下:

  1. 首先检查列表长度不为0,所以执行递归调用:fun([2,3,4,5])
  2. 递归调用返回的结果是2 + fun([3,4,5])
  3. 再次递归调用得到fun([3,4,5])的结果,再加上前面的结果得到2 + 3 + fun([4,5])
  4. 继续递归调用得到fun([4,5])的结果,再加上前面的结果得到2 + 3 + 4 + fun([5])
  5. 最后一次递归调用是对于列表只有一个元素的列表[5],此时返回该元素的值,即5。所以最终结果是 2 + 3 + 4 + 5 = 14。但由于初始调用时列表的第一个元素是1,所以最终输出结果是 1 + 14 = 15
创作类型:
原创

本文链接:运行如下代码,请输出运算结果?( ) def fun(lst):    if len(lst) ==

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share