采用笨办法学python,终于过半了,一来到习题41,难度陡增啊!调代码调了一整个早上,犯了很多错误,终于调通
首先,在系统中用编辑器输入代码,我用的vim,采用默认编辑器也行
代码如下,这个代码是已经调通的代码,原书代码的基础上加了注释和一些输出:
1 | coding=utf-8 |
error1:在调试过程中,遇到的几个小问题,字母打错,少打,大小写不一致,缩进不一致,都导致了报错
error2: IOError Errno socket Error errno 111 Connection refused
很荣幸的就遇到这个问题了:
google一下,解决方案有:
1.确保服务端在相应的端口监听;
2.关闭防火墙(ubuntu下面的命令:sudo ufw disable);
3.而且server端要 sudo 运行;
于是,我就加sudo 了,问题得到完美解决
error3: AttributeError: ‘module’ object has no attribute ‘xxx’
一运行再次出现新的问题,google了好多,说是要删除.pyc文件,
https://blog.csdn.net/csu_vc/article/details/79836576
我找啊找还是没找到咋个删除这个问题,不过当我定睛一看,发现报错的附近代码有个地方少打掉了一个函数,真想打死自己,所以啊,码代码啊,要仔细啊!
error4: SyntaxError: Missing parentheses in call to ‘print’)
这个问题怪我太大意,写的代码是Python2的语法,结果运行的时候输入的命令是:sudo python ex41.py english
默认用python3执行了,当然不对,这种细节也要注意啊!
改成sudo python2 ex41.py english
在整个程序调试过程中,可以用print
打印下某些中间的值,方便理清楚值的变换情况,也可以用type()
函数查看变量类型