作者回复: 谢谢,希望您能够在课程中有所收获。
作者回复: 用遍历是为了让从其他编程语言转过来的同学熟悉一下python的for语句的写法,也为了讲解时清楚每一个步骤的功能,其实是不够Pythonic的,建议用第二种方法;我在后面一样用了同样方法讲了open()和上下文管理器功能,等同学们熟悉了这两个功能之后,我们会用更优雅的写法 with open来替换掉不够Pythonic的代码。
作者回复: 1 请先搜索gbk gb18030 gb2312 的区别
2 改为gbk(和源文件一样的编码)打开即可
3 操作系统(windows)也有默认的编码格式的,如果和文本的编码不一致会报错的
作者回复: f3 = open('sanguo_T.txt', encoding='GBK')
使用gbk编码打开
作者回复: 想想for …in…结构的in后面可以接什么东西呢?如果查官方文档你就会发现后面接的是序列,那么序列哪种特性可以通过for…in便利呢?就是它的可迭代,所以这里的for…in…后面的对象只要可迭代就可以使用了。
那接下来就简单了,file.readlines是个列表,列表就是序列的一种啊,所以for…in就能处理了,那file呢?通过type()函数查看是file类,同样可迭代,那就没有必要转换成列表再遍历了呀。
作者回复: 亲自试验一下,再查一查strip这个函数的功能,亲自试验过才能记忆深刻
作者回复: 复制粘贴和视频剪辑,想让大家看的更流畅,并不是黑魔法
作者回复: 请检查三个地方
1 Pycharm使用的编译器是否为python3
2 Pycharm界面右下角显示的源代码文件是否为UTF-8
3 是否文件保存路径为中文(新版本的Pycharm不会有这个问题)
作者回复: 官方文档在docs.python.org可以看到,是英文版的,中文文档在搜索引擎里面搜 python3中文手册即可,高于python3.5的版本即可,但是翻译过来一般都会加上作者自己的理解,建议和英文文档对照着看,避免因作者笔误或理解不到位导致你遇到问题。
作者回复: 这是非常典型的字符编码不一致导致的错误,例如txt文件是utf-8编码,无论使用gbk还是gb18030都无法正确读取的,最简单确定编码的方法是,可以在pycharm打开文本文件,在上方会提升该文件的编码,通过右下角的编码的convert功能还可以转换成不同的编码格式供编程测试
作者回复: 有可能有关系。。。不用追求一样,追求代码执行的正确和你对代码执行结果理解的正确就好
作者回复: 这是pycharm的自动补全功能,默认就可以实现
作者回复: 1 i的作用主要判断奇数还是偶数行
2 如果是奇数行就输出
作者回复: SyntaxError Non-ASCII character '\xe8' in file /sanguo.py on line 2 see http://python.org/dev/peps/pep-0263/ for details
很明显是使用python2 版本的,而且还有字符集的问题
作者回复: 我提供两个解决办法
1 如果使用pycharmIDE的话,打开文本文件,在右下角显示了文件的字符编码,根据编码打开
2 用python的chardet库判断文件字符集
import chardet
bstr = open("name.txt").read().encode()
print(chardet.detect(bstr))
作者回复: 使用pycharm打开.txt格式的文本文件,在右下角会显示字符编码