这里是第1周任务的完成轨迹,详细过程参见各章节。

第1周任务分解

2017年1月10日16:41:10

昨晚阅读了ch1的卡包,任务是开发一个简易的天气查询程序。任务可以分为下面几个部分:

  1. 从课程仓库获取天气数据。
  2. 读取天气数据。
  3. 将天气数据转换为字典。
  4. 使用中文进行人机交互。
  5. 优化。

因此,本周的任务将按照如上分解过的子任务逐个处理,最后再进行一次完整检查。

给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。彩蛋依然有两个:

results matching ""

    No results matching ""