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

Python代码找bug(2)

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

上期的代码设计需求:

有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

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

答案:共有5个bug。(赶紧对下自己的答案,是不是全对了呢?)

(1)三个for循环迭代的range的参数应该是(1,5),这样才能循环1-4次嘛;

(2)if( i != k && i != j && j != k)的条件是并列关系,应该是与运算,使用and关键字,正确的写法是:if( i != k and i != j and j != k)。有使用&&,大概是C系语言的习惯吧?

(3)If语句的后面为什么没有冒号呢?哈哈,莫非是手都写软了,没力气写了?

(4)print方法在Python3以后,是带括号的哦。

(5)最后还有一个隐形的bug,就是print语句是if语句的子句,所以,是要缩进的哦。兄弟,如果像现在这样没有缩进的话,if语句不是就没起作用了吗?结果会是所有的循环结果都会被打印出来。那是不是有点尴尬了?!

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

嗯哼!看起来差别也不是很大嘛~。

是啊!Bug要是大了,那还叫bug吗,也许该叫elephant了。

话说回来,如果代码的问题真像是elephant那样子的,一庞然大物,还用找吗?

关于程序bug的问题,送大家一句话吧:勿以恶小而为之,勿以善小而不为!说笑了,没有这么严重。

下面公布今天的问题。

本期代码设计需求:

企业发放的奖金根据利润提成。发放标准是利润:

(1)低于或等于10万元时,奖金可提10%;

(2)10万-20万时,高于10万元的部分,可提成7.5%;

(3)20万-40万时,高于20万元的部分,可提成5%;

(4)40万-60万时,高于40万元的部分,可提成3%;

(5)60万-100万时,高于60万元的部分,可提成1.5%,

(6)高于100万时,超过100万元的部分按1%提成,

要求:从键盘输入当月利润,即可计算出应发放奖金总数?

代码如下:

实际上,这个案例,我们在《Python入门》中讲过,因为是入门课程,我们在解决方案上使用的是更加直观易懂的方法,其代码可能更容易理解。

此处的代码,可能有一点抽象,它的价值正是在于它将利润的各个考核区段和奖金提成比例这两组数据,分别都存放在两个不同的列表中,但是它们具有相同的长度和对应关系。这是应用列表数据结构解决问题的典范,每一行代码都堪称经典,非常值得我们学习。

但是上面的代码,依然存在一些小bug,大家擦亮眼睛,仔细找找吧!

找到了,就写在留言里吧,方便明天我们一起对答案。

我发现,我们的读者大都好腼腆哦,不太喜欢留言。但是,参与度越高,你的学习乐趣越大,学习效果也越好啊,何乐不为呢?

好吧,且待答案明天揭晓。

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

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

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

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

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

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