这里是第1周任务的完成轨迹,详细过程参见各章节。
第1周任务分解
2017年1月10日16:41:10
昨晚阅读了ch1的卡包,任务是开发一个简易的天气查询程序。任务可以分为下面几个部分:
- 从课程仓库获取天气数据。
- 读取天气数据。
- 将天气数据转换为字典。
- 使用中文进行人机交互。
- 优化。
因此,本周的任务将按照如上分解过的子任务逐个处理,最后再进行一次完整检查。
给gitbook添加评论功能
2017年1月10日22:08:02
阅读了闪闪的一篇有关“给GitBook添加评论功能”的文章,刚尝试了半个小时依旧不得要领。我的操作过程是:
注册多说之后对于如下界面,不知道将源代码放在gitbook的什么地方:

看到闪闪说修改仓库文件book.json,但并没有发现Py103下有这个文件。难道要新建吗?
为了确认是否需要新建,我找到yanzhiw的仓库但是并没有发现有book.json这个文件。
停驻在此。鼓励自己再深入思考一点:如果接着做下去,我还可以尝试什么?其实还可以有两方面的尝试:① yanzhiw可能使用了另外的仓库来存放gitbook,所以再向其他同侪处进行求证。②自己动手尝试在自己的gitbook仓库新建一个book.json,并将闪闪提供的如下示例代码抄入其中:
{ "plugins": ["duoshuo"], "pluginsConfig": { "duoshuo": { "short_name": "用户名", "theme": "default" } } }
又半个小时过去了,尝试去查找他人的仓库一直没有找到合适参考的。然后鼓起勇气自己尝试了一把,刷新一看竟然成功了!哇塞,简直太棒了!闪闪棒棒哒!
git学习
2017年1月11日14:35:59
开始进入git学习,准备使用git命令从fork仓库获取天气数据文件。
2017年1月12日07:24:47
昨晚回家近9点,煮饭吃饭洗漱已是晚上10点,再开会到晚上11点,没时间。早起准备继续学习git。
2017年1月12日21:47:12
完成第一项子任务:获取天气数据文件。
天气数据文件内容读取
2017年1月14日15:43:48
开始进行文件读取的子任务,随机遇到显示乱码问题,几番折腾。
2017年1月14日17:55:02
在试验的基础之上解决了编码问题,暗忖编码机制还没有理解通透。
使用字典
2017年1月15日11:19:22
开始改写代码,使其通过字典进行存储并输出。第一步需要完成文件逐行读取的功能。
2017年1月15日13:08:05
文件逐行读取代码完成。
2017年1月15日15:02:53
完成字典的存储与读取。
人机交互
2017年1月15日15:07:35
开始解决人机交互的子任务。
2017年1月15日16:05:56
梳理程序步骤,编写出第一个版本,但再次遭遇“乱码”。
2017年1月15日17:49:53
被乱码崩溃问题折腾了一个多小时依然没有解决,暂时将CLI工具更换为Windows自带的PowerShell,调试出第一个可用版本。整个过程七个字可以形容:“一把鼻涕一把泪”。
软件优化
2017年1月15日19:04:53
目前迭代到第三的一个版本,不过要回家吃饭了。
2017年1月15日21:08:29
准备将调试通过的代码使用函数进行模块化。
2017年1月15日21:22:40
模块化完成,先提交任务。
2017年1月15日22:15:00
提交作业时发现需求漏做,补充上。
取经
2017年1月16日16:21:08
昨晚上交了作业,今天稍微空些,决定去串门,看看他人的作品。
先从ch1 优秀实践当中去找,然后有如下发现:
1.首先是code661推荐的Xenaxxx的代码,写得确实清晰,并且阅读的时候发现自己还有些没有考虑完全的地方,比如"history"命令可以支持简写的“h”。
2.阳师提到的summerpenguin的gitbook目录,核对了下,自己之前已做好了类似的工作。同时进度超快的Leohb。
3.summerpenguin推荐的一篇代码观后感,里面对比了同一个功能的不同实现,的确让人大开眼界,比如字典存储方式的多样化,有两种让自己觉得非常惊奇。
比如下面这最为短小的一种:
def build_weather_dictionary1():
with open('weather_info.txt') as weather_info:
weather_report = dict(line.split(",") for line in weather_info)
同时还有这一种:
def build_weather_dictionary2():
with open('weather_info.txt') as weather_info:
for line in weather_info:
city,weather_report[city] = line.split(",")
第二种调试通过,第一种没有。
2017年1月16日19:54:46
刚刚突然想起自己的文件命名看起来不专业,记得大妈在微信群里面提到过google的python编码风格,可以据此来改进文件命名。
BGM&彩蛋
ch1的BGM推荐是Marvin the Album。彩蛋依然有两个: