编程是切勿急躁,但是也不能慢悠悠啊【手动捂脸】
这章主要都是python的非常基础的知识,有很多BUG也都是非常非常有特点的需要注意的
基本上对于个人来讲没有特别多的新知识了
assert
的用法可以再熟悉一下,这个其实有的时候挺有用的,尤其是在学网课进行自我监督时。
函数的docstring突然想起来,自己貌似很少写╮(╯▽╰)╭,这点之后也得注意
引用一段话:
编程是一种技能,需要获得几年的各种编程语言和任务的经验。关键的高层次能力是算法设计及其在结构化编程中的实现。关键的低层次的能力包括熟悉语言的语法结构,以及排除故障的程序(不能表现预期的行为的程序)的各种诊断方法的知识。
pdb
这个调试器不怎么用,通常都是用print。
关于NetworkX,这个之前也没有用过,所以上来也是遇到了
AttributeError: module 'networkx' has no attribute 'draw_graphviz'
这个错误,然后参考了网页:
http://python.thenaiveapproach.com/buggy-module-installation-networkx-pygraphviz/
http://www.bubblefertilizer.com/graphviz-pydot-pygraphviz-networkx-matplotlib-phylo-tree.html
个人电脑室win10系统,所以去官网下载windows的.msi文件:https://graphviz.gitlab.io/_pages/Download/Download_windows.html
安装简介参照:https://blog.csdn.net/lanchunhui/article/details/49472949
然后就是pygraphviz这个库的安装了,这个就非常的麻烦了,我们都知道如果看见microsoft visual c++ 14.0 is required
的报错,尽量都是避免安装这个控件,而是直接去: https://www.lfd.uci.edu/~gohlke/pythonlibs寻找对应python的对应whl,但是pygraphviz真的目前只支持到python3.4,这也是很有趣,为什么NLTK官网是以python3.4为主题……于是问题就变得麻烦了,目前肯定是还没有继续安装Microsoft Visual Studio的打算。
赶紧继续查了一下版本问题,目前可以直接看到draw_graphviz函数存在是因为网上目前使用的NetworkX版本为1.11.0或者1.10.0,所以这个就很奇妙了,然后去2.0的官网看了一下https://networkx.github.io/documentation/stable/release/release_2.0,赫然写着:
Remove draw_graphviz function. Fixes #1997 (#2077)
我……emmm,手动微笑
于是,去stackoverflow重新搜索了问题:https://stackoverflow.com/questions/41047362/python-networkx-error-module-networkx-drawing-has-no-attribute-graphviz-layo
终于解决,只要直接用draw这个函数就好了,不用管其他的。
真是的……不明所以,这个也算是吃了一次教训,因为版本的原因,我应该在这种函数普通搜索没有结果之前,先去到官网doc里面寻找一遍,然后再重新搜索问题。希望本文章能够帮到足够多的人,不再受到网上过时代码的影响。
程序这种东西发展速度真得是很快,完全没有预料到会有这么多issue,也是感慨一番。前些日子看到有人说程序员比常人的优势之一在于:能够更快、高效地使用搜索引擎掌握解决BUG的方法。果然是经验之谈,而且非常有道理,修行还将继续。