猿课Python学习计划安排

回复 收藏

经过很多人科学的证明,学习一项新的技能就是着手去做,先不用管这个技能有多难或者简单,当你亲自做了一段时间,你的兴趣也就培养出来了。所以,有了视频,边看边做,慢慢你对python就上手了,而且不止一遍,至少要两遍。




第一天 主要是变量的学习
1.1 python安装(win和linux下)
1.2 ipython安装及使用
1.3 变量的定义
1.4 变量赋值
1.5 运算符(赋值、算术、关系、逻辑)
1.6 表达式
相关练习:写一个四则运算器,要求从键盘读取数字
体会input()与raw_input()区别
扩展知识:十进与十六进制互相转换、十进制与字符串互相转换,int()、hex()、str()

第二天 数据类型
1.1 数值类型(整型、长整型、浮点型、复数型)

1.2 序列之字符串类型(引号的使用、下标与切片)
1.3 序列之元组
1.4 序列之列表(增、删、改、查及一些方法,体会对象的方法)
1.5 获得帮助
1.5.1 ipython下使用help命令获得帮助信息
1.5.2 https://docs.python.org/2/library
1.6 相关练习:1)字符串转换成列表---list()函数
              2)列表转换成字符串---字符串的join()方法
扩展知识:去掉列表里的重复元素,体会set()的使用

第三天 字典
1.1 字典的创建
1.2 字典的访问:keys()、values()、items()、iteritems()等方法
1.3 字典的更新:update()方法
1.4 删除字典里的元素及字典
1.5 遍历字典

知识扩展:把2个列表存到一个字典里,其中一个列表的各个元素分别作为字典的key,另一个列表的各个元素作为字典的value。掌握dict()函数的使用

第四天 流程控制
1.1 if语句语法格式
1.2 理解布尔值True和False
False的为:
空列表([] )、空元组(() )、空字典({} )、空字符串('' )、零值(0 )、特殊对象None、对象False(很明显)。
除了以上几点以外的所有东西都视为"True"
1.3 体会条件表达式
1.4 for循环语法格式
1.5 range()与xrange()
1.6 使用for遍历序列与字典
1.7 使用for遍历文件

相关练习:打印乘法口诀表

第五天 流程控制
1.1 while循环语法格式
1.2 文件对象的一些方法,read()、readline()、readlines()
1.3 使用while遍历文件
1.4 break与continue

相关练习:
统计系统的free的内存
扩展练习:
统计apache进程所占的内存及百分比

第六天 函数
1.1 函数定义
1.2 函数参数
1.3 默认参数
1.4 函数变量
1.5 全局变量
1.6 函数返回值
1.7 函数的多类型传值和冗余参数

相关练习:判断一个字符串是纯数字,使用函数
使用字符串的isdigit()方法改造上面的例子

第七天 函数
1.1 函数的递归调用
1.2 os模块下的一些方法:os.path.isdir、os.path.isfile、os.path.join、os.listdir
1.3 匿名函数lambda

相关练习:递归列出目录里所有文件

第八天  内置函数与模块
1.1 常用函数
abs()
max()
min()
len()
divmod()
pow()
round()
callable()
type()
isinstance()
cmp()
range()
xrange()

1.2 类型转换函数
int()
long()
float()
complex()
str()
list()
tuple()
hex()
oct()
chr()
ord()
eval()

1.3 模块的使用
1.4 PYTHONPATH变量

相关练习:求相邻的mac地址。
例如已知mac地址:00:0C:29:D1:6F:E9,下一个相邻的mac地址是:00:0C:29:D1:6F:EA


第九天 面向对象编程
1.1 简单了解面向对象
1.2 了解类和对象
1.3 掌握类的创建
1.4 掌握类的属性:公有属性、私有属性、内置属性
1.5 掌握类的方法:公有方法、私有方法、类方法、静态方法
1.6 装饰器及使用
1.7 魔法方法:__str__()、__init__()、__del__()

第十天 面向对象编程
1.1 类的继承
1.2 类多重继承
1.3 掌握super函数
1.4 类的总结

相关练习:
使用类创建一个rc脚本,以memcached为例
通过这个例子,对类的使用有一定了解,加深及巩固关于类的一些概念。


第十一天 Python如何使用标准输入及输出
1.1 掌握python下的标准输入sys.stdin
1.2 python对文件操作的一些方法:
    fd.read()、fd.readline()、fd.readlines()
1.3 掌握python下的输出sys.stdout、sys.stderr
1.4 理解locals()的含义
1.5 掌握sys.argv的使用,对比shell下的$0,$1...$n

知识点扩充:内置变量__file__
相关练习:
使用python实现类似tee的命令。

第十二天 optparse模块的使用
1.1 重点掌握optparse模块的使用
1.2 OptionParser类的方法add_option()和parse_args()
1.3 理解add_option()方法的一些参数:dest、action、default、help
1.4 在程序中使用函数,是程序层次分明
1.5 支持统计多个文件

相关练习
写个程序统计文件大小,例如:1.py [-H] filename
支持-H选项,以可读的方式显示文件文件,1-1024B直接显示文件大小,比如100。1k-1M以单位K显示,例如10K。1M-1G之间以单位M显示,例如10M。

第十三天 wc命令支持-n选项
1.1 理解__name__
1.2 给wc添加-n选项
1.3 掌握os.path下的一些方法:
    os.path.exists()
    os.path.isfile()
    os.path.isdir()

相关练习:
统计目录大小,类似du命令,支持-H(readable)

第十四天 hashlib模块与生成器
1.1 掌握hashlib模块
1.2 掌握os.walk模块
1.3 理解生成器的概念,与return的区别
1.4 练习
1.4.1 计算某个目录下文件的md5sum
1.4.2 计算某个目录的md5sum
1.4.3 找到目录中内容相同的文件
1.5 字典排序,按照key或者value排序

相关练习:
找出目录中占用空间大的前10个文件。

第十五天 Python作为胶水语言调用外部命令
1.1 python调用外部命令的方法
1.1.1 os.system
1.1.2 os.popen
1.1.3 os.popen2
1.1.4 os.popen3
1.1.5 os.popen4
1.2 subprocess.call

相关练习:
使用以上方法执行ifconfig和chown命令,体会各自的执行结果

第十六天  异常处理
1.1 捕获异常
1.2 处理异常
1.3 自定义异常
1.4 异常的语法结构
1.5 掌握glob模块的用法
1.6 掌握shlex模块的用法

第十七天 Popen的使用
1.1 重点掌握subprocess模块的Popen
1.2 理解管道PIPE
1.3 掌握一些方法及属性
    p.stdout.read()
    p.communicate()
    p.pid

相关练习:
收集主机信息
1. 主机名:hostname
2. IP地址:ip
3. 操作系统版本:osver
4. 服务器厂商:vendor
5. 服务器型号:product
6. 服务器序列号:sn
7. cpu型号:cpu_model
8. cpu核数:cpu_num
9. 内存大小:memory

作业:收集主机mac地址。提示使用tcpdump -nn -i eth0 port 68 -l

第十八天 正则表达式
1.1 掌握正则表达式
1.1.1 元字符
1.1.2 一些方法findall、match、search
1.2 掌握一些flag
1.3 匹配syslog
1.4 分组

相关练习:
使用正则表达式收集主机网卡名、ip地址、mac地址

第十九天 web开发框架django
1.1 安装django
1.2 创建工程项目与应用
1.3 理解MTV模型
1.4 掌握settings.py、urls.py、views.py这些文件
1.5 了解一些数据类型:CharField、IPAddressField、IntegerField等。
1.6 启动runserver
1.7 定义数据模型并访问数据

扩展知识:看django官方文档
https://docs.djangoproject.com/en/1.8/ part1-3
http://djangobook.py3k.cn/2.0/

第二十天 CMDB项目
1.1 创建SimpleCMDB项目
1.2 导入数据,使用curl
1.3 使用post和get方法传递数据
1.4 导入数据,使用urllib
1.5 主机分组
1.6 掌握models.py文件

相关练习:创建应用hostinfo,使用收集脚本把信息存到cmdb。


第二十一天 序列化
1.1 了解序列化
1.2 掌握pickle模块
1.3 掌握json模块
1.4 django连接mysql数据库
1.5 安装MySQLdb模块,分别使用rpm包及pip方式

相关练习:改写收集脚本使用json模块

第二十二天 实现API
1.1 编写API
1.2 考虑使用什么样的数据结构
1.3 json格式的API
1.4 shell格式的API

相关练习:调用API,查看主机组里有哪些主机

第二十三天 django与apache或者nginx整合
1.1.1 gunicorn模块安装
1.1.2 整合django与nginx
1.2.1 wsgi模块安装
1.2.2 整合django与apache


第二十四天 nagios配置文件生成器
1.1 nagios安装
1.2 nagios配置文件生成器--gen.py
1.2.1 通过API,得到主机和组的信息
1.3 使用序列化保证cmdb的数据有效性

相关练习:通过cronjob,定期执行gen.py,产生nagios的配置文件

第二十五天 插件编写
1.1 编写nagios插件原则
1.2 使用shell编写插件
1.3 使用python编写插件
1.4 监控内存插件
1.5 datetime模块的使用
1.6 监控syslog插件

相关练习:编写监控syslog的插件,1分钟内出现相同的错误3次报警,并发邮件。

第二十六天 监控远程主机
1.1 NRPE插件
1.2 监控远程主机的内存
1.3 监控远程主机的syslog


第二十七天 多线程--thread模块
1.1 多线程介绍
1.2 thread模块
1.3 线程锁的使用

相关练习:使用两个线程输出hello world

第二十八天 多线程--threading模块
1.1 threading模块
1.2 启动线程的两种方法
1.3 互斥锁
1.4 线程间通信Queue模块,理解生产和消费


第二十九天 多进程--multiprocessing
1.1 multiprocessing模块
1.2 进程池Pool


第三十天 paramiko模块
1.1 paramiko模块
1.2 并行命令
1.3 fabric模块

相关练习:结合CMDB,实现并行命令
知识扩展:dsh、pdsh的使用

第三十一天 saltstack
1.1 安装saltstack
1.2 体会salt命令
1.3 学会查看官网文档
1.4 sls文件格式

知识扩展:
使用pip方法安装saltstack

第三十二天 target
1.1 体会state.sls与state.highstate
1.2 理解target
1.2.1 glob
1.2.2 grains
1.2.3 compound
1.2.4 nodegroup

第三十三天 编写模板
1.1 sls文件模板
1.2 配置文件模板
1.3 saltstack与SimpleCMDB整合

第三十四天 mysql工具箱
1.1 掌握ConfigParser模块
1.2 理解类的继承
1.3 掌握函数的冗余参数与多类型传值
1.4 掌握getattr与setattr函数
1.5 完成mysql.py库

第三十五天 创建mysql实例
1.1.1 理解包的创建
1.1.2 使用包
1.2.1 创建mysql实例
1.2.2 掌握optparse模块
1.2.3 掌握subprocess模块

第三十六天 调整mysql配置文件参数
1.1 掌握MySQLdb模块的使用
1.2 mysql配置文件检查
1.3 两个字典的比较
1.4 mysql配置文件调整

第三十七天 AB复制
1.1 mysql的AB复制原理
1.2 创建主库
1.3 创建从库

第三十八天 mysql备份
1.1 mysql的备份
1.2 掌握datetime模块
1.3 mysql恢复
1.4 则正表达式的使用

第三十九天 ddns
1.1 配置dns
1.2 nsupdate命令
1.3 python dns模块
1.3.1 dns.query的使用
1.3.2 dns.message的使用
1.3.3 dns.tsigkeyring的使用

第四十天 通过DNS实现从库的LB集群
1.1 检查mysql从服务器的状态
1.2 dns动态记录更新

第四十一天 CMDB整合

第四十二天 网络编程
1.1 socket介绍
1.2 socket编程
1.3 实现ftp服务器

第四十三天 SocketServer模块
1.1 SocketServer模块
1.2 实现ftp server

第四十四天 graphite+carbon+whisper
1.1 安装graphite
1.2 graphite工作原理
1.3 统计网卡流量

第四十五天 统计apache日志的code
1.1 分析apache日志
1.2 文件倒读
1.3 理解文件的方法:
    read()
    seek()
    tell()

第四十六天 使用文件倒读统计apache的code

第四十七天 diamond
1.1 安装diamond
1.2 自定义收集器
1.3 修改diamond
1.4 统计apache日志的code

第四十八天 源码安装python
1.1 源码安装python2.7
1.2 源码安装pip
1.3 源码安装ipython

第四十九天 源码安装graphite套件
1.1 源码安装graphite套件
1.2 源码安装diamond
1.3 apache与graphite整合
1.4 分析自动化运维思路

第五十天 日志统计工具
1.1 logstash安装
1.2 编写logstash配置文件
1.3 分析多个日志文件

第五十一天 logstash扩展
1.1 logstash+statsd+graphite
1.2 Diamond与statsd测试比较

第五十二天 logstash一些插件
1.1 file插件
1.2 date插件
1.3 分析php的错误日志,正则表达式的使用
1.4 punct插件

第五十三天 ELK整合
1.1 php日志在graphite上展示
1.2 ELK整合

第五十四天 代码管理
1.1 安装jenkins
1.2 jenkins管理应用代码
1.3 客户端部署脚本编写
1.3.1 使用urllib2下载应用代码
1.3.2 对下载的文件校验,hashlib模块
1.3.3 tarfile模块

第五十五天 代码的版本控制
1.1 版本控制:livever、lastver
1.2 回滚
1.3 文件锁

第五十六天 fabric模块的使用
1.1 fabric检查状态
1.2 整体测试

第五十七天 kvm虚拟机的管理
1.1 安装kvm虚拟机
1.2 qemu-kvm命令
1.3 virsh命令

第五十八天 安装虚拟机
1.1 掌握libvirt模块
1.2 编写程序获取虚拟机信息
1.3 编写安装虚拟机工具

2016-05-13 15:26 举报
已邀请:
0

jinm

赞同来自:

赞!
0

Linuxpp

赞同来自:

ok
0

summer123

赞同来自:

0

一笑而过

赞同来自:

这个计划好,看来我一天看的内容是比较多了,很多东西容易记混淆。
0

howiewang

赞同来自:

有内容,有计划,有老师,我的python一定可以学好!感谢!
0

yanggang

赞同来自:

感觉挺诱惑的
0

cb2008116

赞同来自:

学习
0

pbw19950507

赞同来自:

不错
0

gys2016

赞同来自:

好东东呀
0

乐橙306

赞同来自:

求份  老师的 PPT  {:6_137:}
0

tuanjun

赞同来自:

感觉跟C+有点类似咯
0

初秋飞马

赞同来自:

看过一点python的书,再看视频,感觉会更好一些哦。哈哈哈哈
0

Remember犬牙

赞同来自:

这个好
0

meiru

赞同来自:

0

tuanjun

赞同来自:

想报名学哦,但linux课程还没学完呢
0

tonyklose

赞同来自:

{:4_93:}要不我照着下的书也写点东西不过没实践啊
0

DSH20150916

赞同来自:

学习方法!
0

2422606568

赞同来自:

很好
0

2422606568

赞同来自:

这个计划好
0

陈森林

赞同来自:

加油!
0

gjc159357

赞同来自:

这速度  是纯学习的人看的么,每天工作忙,进度没那么快
0

Outlier

赞同来自:

自己也在看Python,参考一下这个学习计划{:4_93:}
0

loading丶

赞同来自:

{:4_91:}
0

liuop

赞同来自:

新人,没接触过 看来有得学了{:7_173:}
0

爱疯熊猫

赞同来自:

有个计划,按照学习走。

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: