首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

它只是一道我以为很难事实上不是很难的题

看看着这段文字,我就特别的喜欢,难怪我越来越喜欢编程,我不是喜欢代码,也不是喜欢那些英文字母,而是喜欢它的这种思维模式,这种可以通过赋值而可以多次调用,不需要频繁写出公式,就像不用同一件事得多次老调重弹一样,我就特别欣赏编程的这一点干脆利落和简便。

编程不是一件封闭的工作,而是一件敞开大门,没有了我,换成另外一个人也可以继续去做的事,因为代码会解释这里要做什么、如何做,为什么要这么做,全部在代码里都有交代,不需要你写完了代码,几十年都还得记着,完全可以写完就放下,需要的时候再打开看一下,然后连接上思路就可以了,编程的魅力就在这里。

这段代码我压根就不知道它在说什么,它可能认识我,我却完全不认识它,似曾相识,似曾在之前有看过这样的格式,但是这个时候、现在、这里我不知道它在说什么,又好像看得懂,反正就是这样子我开始要做下面的练习:

现在我也在一段一段的发代码,真不知道是给谁看的,我还发得特乐乎。

我为什么会打开看她的博客呢?因为群主倪考梦说她是前广州法官,后来的京开智人,现在的新西兰程序员,这跨界真够呛的!可是,蒂娜都可以从一个科学家跨界到去做企业咨询顾问,那么一个法官跨界当程序媛那也没什么不可以,

那么来看看这个练习到底是要做什么?

貌似知道要做什么,就是要实现一个这样的结果:

print(readable_timedelta(10))

1 week(s) and 3 day(s)

那么要实现这个的之前得是什么?得是先定义了readable_timedelta(days)这个函数,而这个函数的输出结果是这种1 week(s) and day(s)这种格式,也就是print("{} week(s) and {} day(s)".format(week(s),day(s))),可是这个变量week(s)和day(s)怎么出来呢?当赋值days=10,这个week(s)怎么能够自己生成1呢?这个day(s)又怎么生成3呢?

那得让days和它们有关系,可是这个关系是什么呢?

week(s) = days//7,这个得用整数除法//,一个整数除以另一个整数,将结果取整。

day(s) = days%7,这个得用模运算,第一个数字除以第二个数字后,该符号会给出余数。

它们的关系就是这样子,可是得怎么写代码呢?难道得定义两次?还是直接就这样子:print("{} week(s) and {} day(s)".format(days//7,days%7))?

测试答案:

可以生成1 week(s) and 3 day(s)这个结果了,可是为什么还出现了个None呢?难道我定义的函数有问题?提交答案后,显示:

我错了吗?可是错在哪里呢?答案是一样的啊,就是多出了一个None。它提示按”Next“看后面它的答案:

哦,我知道了,问题是出在不能用print,而是得用return,教程说的是:“使用 return 关键字可获取函数结果。return 之后的表达式值是函数的输出值。”

而print,教程说的是:“print 在控制台上显示文本,但是我们看到的其返回值是 None。None 是 Python 中的一个特殊值,表示值的缺失。如果函数没有明确返回任何其他内容,则 None 是其默认返回值。”

那么我的问题真的是出在得用return而不是print吗?

测试一下答案:

不再出现None了,那么提交答案看看:

至此这道题就算解完了。

可是这个过程并不是一下子就完成的,我不是一下子就想到了得用取整//和取余数%这两个符号,而是解不开,不知道怎么做了之后,时间到了得去上瑜伽课,然后就去上了一个小时的瑜伽课,下课之后我就忘记了这道题,没有再停留在解不开的那个思路里,而是restart。

好了,我练完瑜伽回到店里,冲了一杯咖啡,带着不把它解开誓不为人的燃心,我没有看Python网络课程的那些文字,而是在这里通过文字梳理思路,毕竟我擅长的就是通过文字来找出下一步该做什么,这时就发现我对之前学过的知识不熟悉,于是回到课程1重新看起:算术、类型、函数……咦,我又翻回到了算术这一部分,哦,原来可以//取整和取余数%,那么试试看,就这样子才重新编写了代码,然后看似一道很难的题就变得不是那么难了。

但凡觉得很难、太复杂、有压力,那并不是题目的问题,而是思路的问题,这个时候不要再继续朝这条又复杂又解不开的思路走下去,而是清空,restart,像从来没有见过这道一样,重新来过,那么就不会被之前的情绪带着跑了,也可以再次品尝到乐趣,毕竟编程本身就不是为了折磨自己才来做这个。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180119G0D3OV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券