一、PYTHON擅长的领域
WEB开发
Django\pyramid\Tornado\Bottle\Flask\WebPy
网络编程
Twisted\Requests\Scrapy\Paramiko
科学运算
SciPY\Pandas\Ipython
GUI图形开发
wxPython\PyQT\Kivy
运维自动化
OpenStack\SaltStack\Ansible\腾讯蓝鲸
二、运维会了开发后可以干什么?
- 帮助公司开发各种自动化工具,定制开发各种开源软件;
- 帮助评估和优化业务技术架构;
- 开发公司的内部办公系统、CRM、网站等;
- 做个全栈工程师,全栈就是指什么都能做的样子。
三、课程介绍
疗程1:语言基础(5-6周)
- 数据类型;
- 流程控制;
- 常用模块;
- 函数、迭代器、装饰器;
- 递归、迭代、反射;
- 面向对象编程;
- 购物车程序;
- ATM信用卡程序开发;
- 计算器程序开发;
- 模拟人生游戏开发。
疗程2:网络编程(4-5周)
- Socket c/s编程、Twisted异步网络框架、网络爬虫开发
- 多线程、多进程、协程gevent、select\poll\epoll
- 生产者消费者模型
- 审计堡垒机系统开发
- FTP服务器开发
- 批量命令、文件分布工具
- RabbitMQ消息队列、SqlAlchemy ORM
- 类SaltStack配置管理工具开发
- Reids\MemCache\MongoDB缓存数据库
疗程3:Web基础开发(3-4周)
- Html/CSS基础
- Dom编程
- 原生JS学习
- Jquery/EasyUi/AngulaJS
- Ajax异步加载
- Highchart画图
- Bootstrap
疗程4:算法&设计模式(1周)
- 冒泡、二叉树、哈希、拆半等常见算法学习
- 工厂模式、单例模式、享元模式、代理模式等常用设计模式学习
疗程5:PY WEB框架(5周)
- MVC框架讲解
- 自行开发一个WEB框架
- Django\Tornado\Flask\Bottle\WebPy框架学习
- Session\中间件\ORM\Cookie\CSRF\FROM......
- Restful API框架
- 权限管理后台开发
- 开发BBS论坛
- 开发WEB聊天室
疗程6:项目实战篇(6周)
- 购物商场开发
- 主机管理+任务编排+运维审计堡垒机开发
- 分布式Nagion/Zabbix监控产品开发
- CMDB资产管理开发
- 基于用户视角的网站访问质量监测分析平台开发
- Docker自动化管理平台开发
- OpenStack二次开发
四、python是一门怎样的语言?
编程语言主要从以下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,每个分类代表什么意思呢,我们一起来看一下。
1、编译与解释
编译是将源程序翻译成可执行的目标代码,翻译与执行是分开的;而解释是对源程序的翻译与执行一次性完成,不生成可存储的目标代码。这只是表象,二者背后的最大区别是:对解释执行而言,程序运行时的控制权在解释器而不在用户程序;对编译执行而言,运行时的控制权在用户程序。
解释具有良好的动态特性和可移植性,比如在解释执行时可以动态改变变量的类型、对程序进行修改以及在程序中插入良好的调试诊断信息等,而将解释器移植到不同的系统上,则程序不用改动就可以在移植了解释器的系统上运行。同时解释器也有很大的缺点,比如执行效率低,占用空间大,因为不仅要给用户程序分配空间,解释器本身也占用了宝贵的系统资源。
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;
而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.
2、动态语言和静态语言
通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。
(1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。
(2)静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。
3、强类型定义语言和弱类型定义语言
(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。
(2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。
强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。
通过上面这些介绍,我们可以得出,python是一门动态解释性的强类型定义语言。
五、python的优缺点
先看优点
- Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
- 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
- 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
- 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
- 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
- 可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
再看缺点:
- 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.1s,用Python是0.01