前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python代码找bug(9)

Python代码找bug(9)

作者头像
高一峰
发布2020-09-22 10:09:36
8810
发布2020-09-22 10:09:36
举报
文章被收录于专栏:高渡号外
Python代码找bug(9)

上期的代码设计需求:

有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

要求使用递归算法计算。

代码如下:

请大家仔细阅读代码,找出其中的bug!

正确答案:共有2个bug。(对答案时间,看看答对了几个?)

(1)第5行代码:c = age(n) + 2中,调用了age()函数。这正是递归算法的特征,但是,参数n代表了每一轮计算中的年龄,所以,应该是随着每一次调用应该n-1。

(2)函数的return值确定是n吗?犯了上一次相同的错误。应修改为return c。

所以,正确的代码应该是这样的:

点评:这个代码找bug问题,是复习递归算法的案例,主要目的:

(1)巩固学习递归算法。

(2)加深理解递归算法中函数的返回值问题。

对以上代码理解还有困难的同学,请翻阅和学习高渡号外前面发送的《Python入门》,或者高渡网站的《Python轻松入门》视频课程。

本期代码设计需求:

两个 3 行 3 列的矩阵:

X = [[12,7,3],

[4 ,5,6],

[7 ,8,9]]

Y = [[5,8,1],

[6,7,3],

[4,5,9]]

请实现其对应位置的数据相加,并返回一个新矩阵。

代码如下:

当然,上面的代码还是有bug的。请找出来,发到留言里,明天对答案。

正确答案明天揭晓。

提醒:惯例所有代码都是基于Pythpn3 的哦。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 高渡号外 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档