Python代码找bug(5)

论坛 期权论坛 期权     
高渡号外   2019-7-21 14:02   2282   0

爱高渡,
学编程,
号外有话说

Python语言,2019年持续在各大计算机语言排行榜高居榜首。应关注高渡(号外)读者的呼声,为了辅助大家更好地完成高渡在线课程的学习,高渡(号外)已连续摘编了《Python入门》和《夯实Python基础》等非常重要和难得的学习资料,在此基础上,从本期开始,我们将持续一段时间,专门摘编一个新的序列:为代码找bug!

只要读者跟着高渡(号外)一起走,你的编程功力一定会与日俱增,相信我,一起加油!更多优质课程请访问高渡网站。

https://www.igaodu.cn

查看历史资料,请扫码关注公众号


遇上好资源,赶紧:加关注 点收藏

Python热门关键词
数据分析、Web开发、数据挖掘
机器学习、人工智能




Python代码找bug(5)

上期的代码设计需求:
利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

代码如下:


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

正确答案:共有3个bug。(对答案时间,看看答对了几个?)
(1)input()方法的返回值是字符串,需要强制类型转换才能参与计算。这个已经不是第一次遇到了,哈哈,就看有没有人不长记性。
(2)grade = A / B / C,这里A、B、C都是字符串,应该有引号引起来哦。不然,现在这个样子,意味着它们是什么?... 是未定义变量,是无法赋值给另一个变量的。
(3)还有一个神奇的错误:else if 看起来怎么那么眼熟呢?没错很多语言里都是这样写的的,这里...是不是手滑了,哈哈! Python是讲究极简的哦,只需要 elif即可。

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


嗯,这个看起来就比较“纯正”了!

点评:昨天的这个找bug问题,主要目的:
(1)让大家巩固对input()返回值的运用。
(2)注意字符串的规范使用。
(3)注意条件判断语句的规范使用。

对以上知识点存在模糊认识的同学,请翻阅和学习高渡号外前面发送的《Python入门》,或者高渡网站的《Python轻松入门》视频课程。

下面公布今天的问题。

本期代码设计需求:

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

需求分析:这是个常见的数学问题。看看用编程的方法如何解决?

代码如下:




大家注意到没有?这个代码很有意思!

循环语句肯定是要用到的,如果使用累计求和的办法是可以直接获得第N次落地时球经过了多少米的,累计折半(除以2)计算也可以直接得到最后反弹的高度的。

但是,但是为什么要定义两个列表呢?

我最近跟一个朋友聊 Python,就发现这样的一个有趣的特点,很多写Python代码的朋友都有这样一个习惯,大家很自然爱把一个重复序列的行为先记录在一个列表数据里,然后,你需要它里面的哪一项,随时方便拿给你。

而不是向我们惯常的做法,通过循环,代码在计算以后直接获取最后想要的结果,而忽略中间状态的数据。

我感觉这是两种不同的思维习惯。我猜测,是否跟Python的基因有关?!

好了,问题是这段漂亮的代码也还是有些瑕疵的,bug在哪呢?

找出来,发到留言里,明天对答案。

找不到bug的同学,建议先复习一下高渡号外前面发布的《Python入门》,以及高渡网站的《Python轻松入门》、《Python Web开发》等视频课程。

https://www.igaodu.cn(爱高渡,学编程,手把手教你!)

提醒,要特别注意格式语法的细节问题。

正确答案明天揭晓。

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

更多课程请访问高渡网站
网址:https://www.igaodu.cn
相关课程资源还有:
《Python轻松入门》视频课程(18节)
《Python入门》同步微课(18节)
《Python Web开发》视频课程(26节)
《Java基础教程》视频课程(26节)



课程资源,建议PC端观看






喜欢就点在看


遇上好资源,转发给朋友

爱高渡,学编程
专注提供优质的编程学习资源

长按二维码关注公众号


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:15
帖子:3
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP