OpenstreetMaps项目总结

2017-08-27  本文已影响24人  学习之术

前两天完成了优达学城的OpenstreetMaps项目,可能由于是第一个项目,花在项目上的时间差不多跟前期学习的时间一样多。写代码时也踩了一些坑,于是写些文字,算是对整个项目的总结。

对开始着手项目的两点建议

一、写项目代码时使用jupyter notebook

一个项目代码少说得有四五百行 notebook的好处是可以一行行运行程序,而不像.py文件那样,一次得执行一个文件。

而且还可以随时调试函数,以前的做法是新建一个文件,还得来回切换,着实不方便。

如果清楚哪个变量的数据,直接新建个cell就可以搞定了。

完成全部程序后,保存为.py文件,以这种形式提交代码后,你才可以看到导师对程序的审阅,现在还不支持反馈notebook形式的代码文件。

二、遵守“准则”

导师评价也是一条条验证你的报告是否遵守“准则”。导师对你报告的审阅结果就是这张“准则”表,不通过的地方就在表中对应地方写下建议。

所以不要偷懒了,写报告前先他细阅读“准则”,并看看示例报告是如何与“准则”匹配的。

编程方面的两点思考

一、数据结构

数据结构很重要,一个简单合适的数据结构可以让代码变得统一简洁很多。

最初为了更详细的分类,以便能更详细的记录数据,我经一个变量采用了这样一种结构:{'eng':[],'eng_colon':{'name':[],'alt_name':[]...},'other':[],'problems':[]},结果在后续的函数中,都得额外写几行代码处理“eng_colon”的情形。后来实在觉得这样太烦了,改了数据结构,代码一下子就简洁了不少,也降低了出错的可能性。

二、缩进错误

不知道其他人如何,我发现自己在写程序时,即使再简单的函数,也经常无法一次性通过,总会出现bug。而所有bug中,最让我抓狂得莫过于IndentationError

我总结出出现这错误有三种可能性:

  1. 确实是没有对齐
  2. 混用了制表符和空格
  3. 附近有其它的语法错误,比如使用了错误的数据结构
    我还不清楚具体有哪些语法错误可能会导致其它地方的缩进错误。如果排除了前两种可能性,就需要注释掉出现缩进问题的前面语句,查看是哪出了问题。

一个问题

提交代码时,最后的报告可否用html格式,而不是pdf呢?毕竟notebook导出的html报告比打印出来的pdf漂亮一些,还可以少一道工序。

总结

虽然顺利完成了项目一,但是并没有掌握前面所教授的知识,特别是对于网页抓取这块,还有些不清楚。像ET等python文档也没有通读过,后续还得花时间复习笔记。

附录:
项目代码Github

上一篇 下一篇

猜你喜欢

热点阅读