作者回复: 谢谢,希望您能够在课程中有所收获。
作者回复: 用遍历是为了让从其他编程语言转过来的同学熟悉一下python的for语句的写法,也为了讲解时清楚每一个步骤的功能,其实是不够Pythonic的,建议用第二种方法;我在后面一样用了同样方法讲了open()和上下文管理器功能,等同学们熟悉了这两个功能之后,我们会用更优雅的写法 with open来替换掉不够Pythonic的代码。
作者回复: f3 = open('sanguo_T.txt', encoding='GBK')
使用gbk编码打开
作者回复: 1 请先搜索gbk gb18030 gb2312 的区别
2 改为gbk(和源文件一样的编码)打开即可
3 操作系统(windows)也有默认的编码格式的,如果和文本的编码不一致会报错的
作者回复: 想想for …in…结构的in后面可以接什么东西呢?如果查官方文档你就会发现后面接的是序列,那么序列哪种特性可以通过for…in便利呢?就是它的可迭代,所以这里的for…in…后面的对象只要可迭代就可以使用了。
那接下来就简单了,file.readlines是个列表,列表就是序列的一种啊,所以for…in就能处理了,那file呢?通过type()函数查看是file类,同样可迭代,那就没有必要转换成列表再遍历了呀。
作者回复: 请检查三个地方
1 Pycharm使用的编译器是否为python3
2 Pycharm界面右下角显示的源代码文件是否为UTF-8
3 是否文件保存路径为中文(新版本的Pycharm不会有这个问题)
作者回复: 这是非常典型的字符编码不一致导致的错误,例如txt文件是utf-8编码,无论使用gbk还是gb18030都无法正确读取的,最简单确定编码的方法是,可以在pycharm打开文本文件,在上方会提升该文件的编码,通过右下角的编码的convert功能还可以转换成不同的编码格式供编程测试
作者回复: 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格式的文本文件,在右下角会显示字符编码
作者回复: 为了视频讲解的时候逐条给大家分析,应该写为 :name_dict[n] = find_item(n)
作者回复: for循环的嵌套:内层全部循环一次之后外层循环执行一次,内层再全部循环一次外层再循环一次,以此类推
作者回复: 和python版本有关,也和文本编码有关,统一为utf-8就可以正常输出了
作者回复: 您好,“ (' ” 这两个符号应该是全角的括号或者单引号,输入法改为英语,使用英文符合重新输入一次。
SyntaxError为语法错误一般为全角半角符号引起的
作者回复: 横向对比各个语言的特点 是学习python的好方法之一,加油