021-python基础-python介绍及课程简介

1、PYTHON擅长的领域python

WEB开发算法

      Django\pyramid\Tornado\Bottle\Flask\WebPy  数据库

网络编程编程

  Twisted\Requests\Scrapy\Paramiko设计模式

科学运算缓存

  SciPY\Pandas\Ipython安全

GUI图形开发服务器

  wxPython\PyQT\Kivy网络

运维自动化多线程

  OpenStack\SaltStack\Ansible\腾讯蓝鲸

 

2、运维会了开发后能够干什么?

  • 帮助公司开发各类自动化工具,定制开发各类开源软件;
  •  帮助评估和优化业务技术架构;
  • 开发公司的内部办公系统、CRM、网站等;
  • 作个全栈工程师,全栈就是指什么都能作的样子。

3、课程介绍

疗程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二次开发

4、python是一门怎样的语言?

编程语言主要从如下几个角度为进行分类,编译型和解释型静态语言和动态语言强类型定义语言和弱类型定义语言,每一个分类表明什么意思呢,咱们一块儿来看一下。

一、编译与解释

编译是将源程序翻译成可执行的目标代码,翻译与执行是分开的;而解释是对源程序的翻译与执行一次性完成,不生成可存储的目标代码。这只是表象,两者背后的最大区别是:对解释执行而言,程序运行时的控制权在解释器而不在用户程序;对编译执行而言,运行时的控制权在用户程序。

解释具备良好的动态特性和可移植性,好比在解释执行时能够动态改变变量的类型、对程序进行修改以及在程序中插入良好的调试诊断信息等,而将解释器移植到不一样的系统上,则程序不用改动就能够在移植了解释器的系统上运行。同时解释器也有很大的缺点,好比执行效率低,占用空间大,由于不只要给用户程序分配空间,解释器自己也占用了宝贵的系统资源。

编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机能够直接以机器语言来运行此程序,速度很快;
而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,因此运行速度是不如编译后的程序运行的快的.

二、动态语言和静态语言
一般咱们所说的动态语言、静态语言是指动态类型语言和静态类型语言。

(1)动态类型语言:动态类型语言是指在运行期间才去作数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其余的各类脚本语言如VBScript也多少属于动态类型语言。

(2)静态类型语言:静态类型语言与动态类型语言恰好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明全部变量的数据类型,C/C++是静态类型语言的典型表明,其余的静态类型语言还有C#、JAVA等。

三、强类型定义语言和弱类型定义语言

(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,若是不通过强制转换,那么它就永远是这个数据类型了。举个例子:若是你定义了一个整型变量a,那么程序根本不可能将a看成字符串类型处理。强类型定义语言是类型安全的语言。

(2)弱类型定义语言:数据类型能够被忽略的语言。它与强类型定义语言相反, 一个变量能够赋不一样数据类型的值。

  强类型定义语言在速度上可能略逊色于弱类型定义语言,可是强类型定义语言带来的严谨性可以有效的避免许多错误。另外,“这门语言是否是动态语言”与“这门语言是否类型安全”之间是彻底没有联系的!
  例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。

经过上面这些介绍,咱们能够得出,python是一门动态解释性的强类型定义语言

 

5、python的优缺点

先看优势

  1. Python的定位是“优雅”、“明确”、“简单”,因此Python程序看上去老是简单易懂,初学者学Python,不但入门容易,并且未来深刻下去,能够编写那些很是很是复杂的程序。
  2. 开发效率很是高,Python有很是强大的第三方库,基本上你想经过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大下降开发周期,避免重复造轮子。
  3. 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
  4. 可移植性————因为它的开源本质,Python已经被移植在许多平台上(通过改动使它可以工 做在不一样平台上)。若是你当心地避免使用依赖于系统的特性,那么你的全部Python程序无需修改就几乎能够在市场上全部的系统平台上运行
  5. 可扩展性————若是你须要你的一段关键代码运行得更快或者但愿某些算法不公开,你能够把你的部分程序用C或C++编写,而后在你的Python程序中使用它们。
  6. 可嵌入性————你能够把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

再看缺点:

  1. 速度慢,Python 的运行速度相比C语言确实慢不少,跟JAVA相比也要慢一些,所以这也是不少所谓的大牛不屑于使用Python的主要缘由,但其实这里所指的运行速度慢在大多数状况下用户是没法直接感知到的,必须借助测试工具才能体现出来,好比你用C运一个程序花了0.1s,用Python是0.01s,这样C语言直接比Python快了10s,算是很是夸张了,可是你是没法直接经过肉眼感知的,由于一个正常人所能感知的时间最小单位是0.15-0.4s左右,哈哈。其实在大多数状况下Python已经彻底能够知足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种状况下,固然仍是建议你用C去实现的。
  2. 代码不能加密,由于PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,若是你的项目要求源代码必须是加密的,那你一开始就不该该用Python来去实现。
  3. 线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任什么时候刻仅有一个线程在执行,Python的线程是操做系统的原生线程。在Linux上为pthread,在Windows上为Win thread,彻底由操做系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即便在多核CPU平台上,因为GIL的存在,因此禁止多线程的并行执行。关于这个问题的折衷解决方法,咱们在之后线程和进程章节里再进行详细探讨。

  固然,Python还有一些其它的小缺点,在这就不一一列举了,我想说的是,任何一门语言都不是完美的,都有擅长和不擅长作的事情,建议各位不要拿一个语言的劣势去跟另外一个语言的优点来去比较,语言只是一个工具,是实现程序设计师思想的工具,就像咱们以前中学学几什么时候,有的时候须要要圆规,有的时候须要用三角尺同样,拿相应的工具去作它最擅长的事才是正确的选择。

相关文章
相关标签/搜索