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

Python代码找bug(5)

作者头像
高一峰
发布2020-09-22 10:07:38
8730
发布2020-09-22 10:07:38
举报
文章被收录于专栏:高渡号外
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 的哦。

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

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

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

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

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