下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 08 | 字符串的定义和使用
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

零基础学Python

共71讲 · 71课时·约540分钟
16024
免费
01 | Python语言的特点
免费
02 | Python的发展历史与版本
免费
03 | Python的安装
免费
04 | Python程序的书写规则
免费
05 | 基础数据类型
免费
06 | 变量的定义和常用操作
07 | 序列的概念
08 | 字符串的定义和使用
09 | 字符串的常用操作
10 | 元组的定义和常用操作
11 | 列表的定义和常用操作
12 | 条件语句
13 | for循环
14 | while循环
15 | for循环语句中的if嵌套
16 | while循环语句中的if嵌套
17 | 字典的定义和常用操作
18 | 列表推导式与字典推导式
19 | 文件的内建函数
20 | 文件的常用操作
21 | 异常的检测和处理
22 | 函数的定义和常用操作
23 | 函数的可变长参数
24 | 函数的变量作用域
25 | 函数的迭代器与生成器
26 | Lambda表达式
27 | Python内建函数
28 | 闭包的定义
29 | 闭包的使用
30 | 装饰器的定义
31 | 装饰器的使用
32 | 自定义上下文管理器
33 | 模块的定义
34 | PEP8编码规范
35 | 类与实例
36 | 如何增加类的属性和方法
37 | 类的继承
38 | 类的使用-自定义with语句
39 | 多线程编程的定义
40 | 经典的生产者和消费者问题
41 | Python标准库的定义
42 | 正则表达式库re
43 | 正则表达式的元字符
44 | 正则表达式分组功能实例
45 | 正则表达式库函数match与s...
46 | 正则表达式库替换函数sub...
47 | 日期与时间函数库
48 | 数学相关库
49 | 使用命令行对文件和文件夹...
50 | 文件与目录操作库
51 | 机器学习的一般流程与NumP...
52 | NumPy的数组与数据类型
53 | NumPy数组和标量的计算
54 | NumPy数组的索引和切片
55 | pandas安装与Series结构
56 | Series的基本操作
57 | Dataframe的基本操作
58 | 层次化索引
59 | Matplotlib的安装与绘图
60 | 机器学习分类的原理
61 | Tensorflow的安装
62 | 根据特征值分类的模型和代...
63 | 网页数据的采集与urllib库
64 | 网页常见的两种请求方式ge...
65 | HTTP头部信息的模拟
66 | requests库的基本使用
67 | 结合正则表达式爬取图片链...
68 | Beautiful Soup的安装和...
69 | 使用爬虫爬取新闻网站
70 | 使用爬虫爬取图片链接并下...
71 | 如何分析源代码并设计合理...
本节摘要

课程源码、课件及课后作业地址:

https://github.com/wilsonyin123/geekbangpython

精选留言(8)

  • 2018-06-02
    通过余数判定年份这个方法,想起计算机课程的经典问题:计算“质数”。

    之前在陈皓老师的一篇博文(打印质数的各种算法--https://coolshell.cn/articles/3738.html)里面,列举了经典的方法。文章里说,实际应用中,会事先把质数计算好,存到文件里,然后读取。这种方法效率更高。
    后续会接触Python里的“字典”概念,也可以通过这个途径来实现快速定位年份的属相。

    另外,生肖是12一循环,就是“十二进制”,年份是十进制。这个问题又可以归结为不同进制数的互算。

    感谢尹老师,案例选择确实讲究。
    展开

    作者回复: 氦同学非常认真哦,能够通过视频内容联系到以前学习过的进制、质数等概念进一步加深对程序的理解;
            编程就是这样的,如果能够通过数学、算法等方式来优化逻辑,又不增加阅读代码难度的话,就会极大的提升代码的性能,你积累的知识越多,你的代码就越优质,这也是编程让人着迷的地方。

    17
  • 2019-02-20
    老师,我真的0基础纯小白。
    直接抄写你的代码,发现几个问题:
    1、无法显示中文,后来在文件头部加了#-*- coding: utf-8 -*-
    2、计算带宽无法取小数点,譬如100/8,我直接输出的结果是12,而不是12.5。然后在头部添加了from __future__ import division
    3、十二生肖计算的时候,你用[0:4],输出的是鼠到龙五个生肖,而我输出的是一个半——鼠?。我用[0:6](必须是3的倍数),才能显示下一个生肖。

    我的问题是:
    1、如何不需要在头部加#-*- coding: utf-8 -*-就可以让pycharm识别中文?这串代码是什么意思?
    2、如何不用在头部加from __future__ import division就可以让pycharm取小数点而不是自动取整?(我用“终端”做除法就会取小数点),还有这段代码是什么意思?
    3、上面的第三个问题的原因我一直没找到。。。

    PS:环境:mac pro,pycharm2018.2.4

    谢谢
    展开

    作者回复: 您好,我依次回答一下这三个问题:
    1 coding: utf-8 是声明代码文件使用的字符编码是utf-8编码,让python以声明的编码来运行源代码文件。考虑到您使用的是mac环境,是否pycharm运行这段代码使用了python2 而不是python3 ? 可以在Pycharm界面运行时观察界面下方输出消息,确定当前使用的是哪个版本的python,因为在python3默认使用的就是utf-8编码。更改pycharm使用python3运行的方法是 点击pycharm界面上的运行-编辑配置, 在Python interpreter 改为python3 解释环境。
    2 这是一个除法精确度的问题,在python2环境"/"符号两边都是整数,返回的结果也是整数,在python3以及不存在这个情况了,这里也验证了第一个问题,您在Pycharm环境使用的是python2解释器,在终端由于Python3是后安装的,所以优先使用了Python3解释器。
    3 还是一个编码问题, 使用[0:4]是因为一次操作的单位是一个字节,所以没办法取到完整的“中文字”,编码规定:UTF-8编码,一个中文字符需要用3个字节来表示;GBK编码,一个中文字符需要2个字节来表示。这也是为什么你需要是用3的倍数的原因了。

    2
  • 2018-12-21
    我是一个编程的初学者,我想问问为什么要从猴开始了?如一楼所说是因为十进制和十二进制的关系嘛?那我又如何去判断我应该从哪个开始了?

    作者回复: 你好,是为了方便计算年份和生肖的对应关系,例如年份2016刚好可以被12整除,而这一年的生肖是猴,所以把猴放在了字符串的第一位,如果字符串以鼠牛虎兔的顺序定义,我们计算时要将2016%12+9,比较繁琐

    1
  • 2018-10-09
    #字符串作业
    s="hello"
    print(s)

    s2="let's go"
    print(s2)

    s3='"the zen of python"--by time peter'
    print(s3)

    b='xyz'
    a='abc'
    print(a+b)
    print(b[1:2])
    print(a*10)

    print('a' in b)
    print('a' in a)
    展开
    1
  • 2019-02-25
    老师,不好意思,我完全零基础。请教一下,为什么year % 12 输出2 ?

    作者回复: 在python 中, “%”符合会返回除法的余数,year变量赋值之后和 12做“%”运算,之后的余数是2,所以返回的结果是2

    1
  • 2019-02-16
    计算年份,就比如选择一个较远的鼠年作为常量,然后用输入的年份减去这个常量再除12,得到的余数-1,再输出String里的年份,这样会不会更好?

    作者回复: 是可以的, 这里的例子主要想用“笨方法”演示字符串的操作,其实从算法来讲并不是最优的

  • 2018-10-25
    老师,问个问题。我现在想用python从excel里读取内容,比如excel中有一列叫server name,然后呢我想每次读取一条记录的时候就根据server name去创建一个文件夹,比如server name是xxxx,我就想创建出来一个文件夹叫xxxx,然后在这个新创建的文件夹下面再创建几个文件。excel里有多少server name我就创建多少个以server name为名的文件夹,之后再去各个文件夹下面创建文件。搜不到解决办法了,只能求助考试了。先谢谢老师了

    作者回复: 我说下解决办法哈,整体来说这个问题不难,因为已经有各种库和方法能够实现基本需求,你需要把一个完整的功能做拆分,比如将读取excel功能封装成一个函数,得到的servername返回值可以使用列表结构存储;创建文件夹的功能明显要根据列的数量来决定,因此需要继续构造一个循环结构;创建文件夹可以使用os模块实现,在文件夹中继续做其他的工作可以把这些写入到一个函数放入到创建文件夹的循环结构中。
    主要还是要掌握把一个大问题拆分成小问题,把小问题转化为代码的能力。

  • 2018-10-09
    尹老师,pycharm输入中文,运行后出现乱码,汉字无法打印出来?这种该如何修复,在百度找了很多这种方法都无法修复。

    作者回复: 试一下修改pycharm-settings-file encodings下面的IDE encodings 和Project encoding 为UTF-8试一试?因为windows 默认是GBK编码,当有编码不一致时就容易出现中文乱码的情况