• feiyu
    2018-08-28
    这是我学过的最容易理解的python课程,之前看过好多所谓大牛出的视频根本不考虑初学者的水平

    作者回复: 谢谢,希望您能够在课程中有所收获。

    
     20
  • 圣林
    2018-07-31
    老师,为什么读取人名的那段代码要
    for line in f:
        names = line.split("|")
    写这样一个遍历呢?我自己尝试不用遍历也可以实现。不知道区别在哪?或者为什么要用遍历呢?
    names = f.read().split("|")

    作者回复: 用遍历是为了让从其他编程语言转过来的同学熟悉一下python的for语句的写法,也为了讲解时清楚每一个步骤的功能,其实是不够Pythonic的,建议用第二种方法;我在后面一样用了同样方法讲了open()和上下文管理器功能,等同学们熟悉了这两个功能之后,我们会用更优雅的写法 with open来替换掉不够Pythonic的代码。

    
     4
  • U.均宇
    2019-01-08
    老师,pycham解码的问题:
    f2=open('sanguo.txt',encoding = 'gb18030')
    print(f2.read())
    直接打开py文件黑框能正确运行,但是在pycham端运行却报错:UnicodeEncodeError: 'gbk' codec can't encode character '\u4986' in position 96697: illegal multibyte sequence
    明明是encoding = 'gb18030'却报错成'gbk'。
    这是什么原因?要怎么解决?
    展开

    作者回复: 1 请先搜索gbk gb18030 gb2312 的区别
    2 改为gbk(和源文件一样的编码)打开即可
    3 操作系统(windows)也有默认的编码格式的,如果和文本的编码不一致会报错的

    
     3
  • 心纲
    2019-01-18
    老师我是win7系统
    'sanguo_T.txt'是从您GitHub上下载的非UTF-8编码文件。

    #报错,提示:
    UnicodeDecodeError: 'gbk' codec can't decode byte 0xfe in position 186008: illegal multibyte sequence
    f3 = open('sanguo_T.txt', )
    f3.read()

    # 可以正常执行
    f3 = open('sanguo_T.txt', encoding='GB18030')
    f3.read()

    #报错,提示:
    UnicodeEncodeError: 'gbk' codec can't encode character '\u4986' in position 96697: illegal multibyte sequence
    f3 = open('sanguo_T.txt', encoding='GB18030')
    print(f3.read())

    #sanguo_utf8.TXT文档也无法print:
    老师,我该怎么解决无法print的问题呢?我试着在程序开头添加# coding:utf-8 也没有用。麻烦老师解答一下,谢谢。
    展开

    作者回复: f3 = open('sanguo_T.txt', encoding='GBK')
    使用gbk编码打开

    
     2
  • 李晓东
    2018-10-31
    老师请教个问题:
    with open('name.txt') as file:
         for line in file:
    这里file不应该是指向name.txt的文件吗?仅仅是打开了还没有读取,为什么就可以如for line in file这样用?
    我感觉正确的语法应该是for line in file.readlines 。
    但是发现这两种都是可以的。
    老师能解释一下为什么可以像for line in file这样用吗?
    展开

    作者回复: 想想for …in…结构的in后面可以接什么东西呢?如果查官方文档你就会发现后面接的是序列,那么序列哪种特性可以通过for…in便利呢?就是它的可迭代,所以这里的for…in…后面的对象只要可迭代就可以使用了。
    那接下来就简单了,file.readlines是个列表,列表就是序列的一种啊,所以for…in就能处理了,那file呢?通过type()函数查看是file类,同样可迭代,那就没有必要转换成列表再遍历了呀。

    
     2
  • molly
    2019-08-03
    函数这一块听不懂了😭
    
     1
  • DUANG
    2019-04-17

    1.创建一个函数,用于接收用户输入的数字,并计算用户输入数字的和。

    def fun1():
        n1=int(input('请输入第一个整数:'))
        n2=int(input('请输入第二个整数:'))
        sum1=n1+n2
        print('%s + %s = %s' %(n1,n2,sum1))


    fun1()


    def fun2():
        n_num=input('请输入多个整数(中间用逗号分隔,回车确认):')
        n_list=n_num.split(',')
        s=0
        for i in range(len(n_list)):
            s+=int(n_list[i])
        print('这些数的和是:%s' %(s))

    fun2()
    展开
    
     1
  • Shirley
    2018-12-31
    老师,这一节我有个疑问,用.strip()函数可以把换行空行去掉,那能不能用两次这个函数,就不用if函数取出奇数行这样呢?我是小白🙄🙄

    作者回复: 亲自试验一下,再查一查strip这个函数的功能,亲自试验过才能记忆深刻

    
     1
  • Tim哥
    2018-12-18
    老师,在data.split('|') 前面 输入print 后,自动补全括号 是如何操作的?快捷键是?
    2018-12-05
     作者回复
    print函数和后面内容有空格时,输入左括号可以自动补全右括号。pycharm还有很多功能可以帮助开发者提高效率,可以参考官方文档http://www.jetbrains.com/help/pycharm/meet-pycharm.html

    问题:我看视频的时候,看见老师操作把print输入完后,data.split('|') 这个内容自动放到print的括号去。我是想问这个是怎么操作的?
    展开

    作者回复: 复制粘贴和视频剪辑,想让大家看的更流畅,并不是黑魔法

    
     1
  • 超人不會飛
    2018-09-23
    请问老师我发现为什么我同样的代码在pycharm 中运行报错。我在命令行之行ypthon3 又能正常运行?
    我应该要怎么去改呢?这个文件我在pycharm运行的时候都是报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 0: ordinal not in range(128)。这个是编码的问题。我什么都不该直接用python3 执行又是可以的。这种问题有没有一个统一标准的解决方法呢?

    作者回复: 请检查三个地方
    1 Pycharm使用的编译器是否为python3
    2 Pycharm界面右下角显示的源代码文件是否为UTF-8
    3 是否文件保存路径为中文(新版本的Pycharm不会有这个问题)

    
     1
  • royshu
    2018-07-15
    您课程中的各种方法的说明文档一般去哪里看?英文和中文都需要

    作者回复: 官方文档在docs.python.org可以看到,是英文版的,中文文档在搜索引擎里面搜 python3中文手册即可,高于python3.5的版本即可,但是翻译过来一般都会加上作者自己的理解,建议和英文文档对照着看,避免因作者笔误或理解不到位导致你遇到问题。

    
     1
  • lus
    2018-06-21
    老师,我输出的是乱的文字。
      开始的报错是这样的
    UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 21: illegal multibyte sequence
    后来加了encoding = "GB18030"
    # #读取人物名称
    f = open("s-name.txt",encoding = "GB18030")
    data = f.read()
    print(data.split("|"))#数据用|分割。

    但是输出的是乱的中文:
    ['璇歌憶浜畖鍏崇窘', '鍒樺\ue62c', '鏇规搷', '瀛欐潈', '寮犻\ue5e3', '鍚曞竷', '鍛ㄧ憸', '璧典簯', '鍙搁┈鎳縷榛勫繝', '椹\ue103秴']
    我是win10系统
    求老师解惑……
    展开

    作者回复: 这是非常典型的字符编码不一致导致的错误,例如txt文件是utf-8编码,无论使用gbk还是gb18030都无法正确读取的,最简单确定编码的方法是,可以在pycharm打开文本文件,在上方会提升该文件的编码,通过右下角的编码的convert功能还可以转换成不同的编码格式供编程测试

    
     1
  • 丁丁历险记
    2020-02-03
    内容挺简单易懂,就是课件素材下载的好累。
    
    
  • 夏圣龙Je suis ét...
    2020-01-03
    老师您好,我边听您讲课边抄写代码,写到第14行代码打印输出后仍然是两行人名,而不是武器名字,请问这是怎么回事呢?跟 .txt格式有关吗?

    作者回复: 有可能有关系。。。不用追求一样,追求代码执行的正确和你对代码执行结果理解的正确就好

    
    
  • Sarot
    2019-12-23
    老师,怎么样设置回车自动输入print()的功能?

    作者回复: 这是pycharm的自动补全功能,默认就可以实现

    
    
  • Serendipity
    2019-10-01
    i = 1
    for line in f2.readlines():
        if i % 2 == 1:
            print(line)
        i += 1
    这里的 i 作用是什么呢?i 和 line 的关系是什么?
    展开

    作者回复: 1 i的作用主要判断奇数还是偶数行
    2 如果是奇数行就输出

    
    
  • Serendipity
    2019-09-24
    # 读取人物名称
    f = open('name.txt')
    data = f.read()
    print(data.split('|'))

    我的 pycharm 在运行以上代码时会出现报错:SyntaxError: Non-ASCII character '\xe8' in file /Users/toi/PycharmProjects/timegeekbang.com/sanguo.py on line 2, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

    为什么老师的演示不会?
    展开

    作者回复: SyntaxError Non-ASCII character '\xe8' in file /sanguo.py on line 2 see http://python.org/dev/peps/pep-0263/ for details

    很明显是使用python2 版本的,而且还有字符集的问题

    
    
  • binoche
    2019-09-18
    with open('name.txt') as f:
         for line in f:
            names = line.split('|')
            print(names)
         for name in names:
            name_num = find_item(name)
            name_dict[name] = name_num
    这两个for实例中有缩紧 想知道为什么
    展开
    
    
  • Geek_b498b7
    2019-08-28
    老师好,在读取name.txt的时候,我用gkb打不开,用GB18030则会出现
    璜歌憶浜畖闂滅窘|鍔夊倷|鏇规搷|瀛瑠|闂滅窘|寮甸|鍛傚竷|鍛ㄧ憸|瓒欓洸|榫愮当|鍙搁Μ鎳縷榛冨繝|棣秴
    这些莫名其妙的文字,请问该怎么解决?

    作者回复: 我提供两个解决办法
    1 如果使用pycharmIDE的话,打开文本文件,在右下角显示了文件的字符编码,根据编码打开
    2 用python的chardet库判断文件字符集
    import chardet
    bstr = open("name.txt").read().encode()
    print(chardet.detect(bstr))

    
    
  • 泡芙
    2019-08-11
    老师,怎么确定下载下来的文件是utf-8编码还是GBK呢?只能尝试吗?pycharm有哪里可以看到这个文件的编码采用什么吗

    作者回复: 使用pycharm打开.txt格式的文本文件,在右下角会显示字符编码

    
    
我们在线,来聊聊吧