学习3天的Python的内容

基础篇python

第一章程序员

1.0Python 简介 web

 

  说到Python语言,就不得不说一下它的创始人Guido van Rossum(1956 -- ?), 他在开发PYTHON语言以前曾使用过几年的ABC语言,ABC是一门主要用于教学目的语言(教计算机系的学生如何设计一门开发语言),Guido 在开发PYTHON时借鉴了不少ABC语言的特性,因此后来人们包括Guido本身也认为,PYTHON语言的前身就是ABC语言。关于创做PYTHON语言的初衷,Guido在1996年写到:编程

    在六年前的1989.12月份,我为了在圣诞假期打发无聊时间找点事干(估计是写代码找不到对象),决定为我最近一直在构思的一门新的脚本语言写个解释器,这门语言的前身ABC(就Guido本人看来,ABC這種語言很是优美和强大,是专门为专业的程序设计师使用的。可是ABC語言并无成功,究其缘由,吉多认为是非開放形成的。吉多決心在Python中避免這一错误,并取得了很是好的效果,完美结合了C和其余一些語言)语言更可能是被UNIX/C黑客使用,我选择PYTHONP这个名字作为这个开发项目的名字,起这个名字的一个缘由是由于我是Month Python’s Flying Circus(英国的一个电视喜剧)的超级粉丝。windows

    就这样,python在Guido手中诞生了,它的第一个版本实现是在MAC电脑上,一直在90年代,PYTHON的开放性、语法的简洁性大受不少程序员的喜欢,不少人拿它来快速的开发一些脚本和工具,并不断的向官方提交新的代码和第三方模块,所以PYTHON能作的事情也愈发多了起来,一些大公司像YAHOO、EBAY也开始在生产环境中使用PYTHON。到了2000年10月16号,PYTHON2.0发布了,相比以前的1.x版本,实现了完整的垃圾回收,而且支持UNICODE,同时整个开发过程更加透明,社区对PYTHON的开发进度的影响逐渐增大。从2000年第一个2.0版本发布到写本书的2015止,2.X版本最主流使用的工业版本,虽然PYTHON官方于2008年就发布了Python3.0,但因为此版本并不彻底兼容以前的普遍使用的2.4版本,这致使不少基于2.4开发软件跟本没法在3.0的平台 上运行,所以3.0的推广也很是缓慢,为解决这个问题,python官方很快又推出兼容2.4和3.0两个版本的2.6,这个版本兼容了原来的2.4版本,又支持了不少3.0的特性,而且官方还开发了专门的帮助将2.x转为3.0版本的转换工具,所以,python3.0的使用才开始逐渐多了起来,不过,如今主流的工业版本依然是2.6和2.7过渡版本,所以本书主要仍是围绕着2.7的版原本学习,不过同窗们不用担忧,由于2.7支持了很是多3.x版本的特性,等到几年后3.0版本普遍使用时,你由2.x转向3.x会像由 windows xp转向使用win 7同样简单。再说回Guido, 这哥们如今还掌控着python的发展方向,他于2005年加入谷歌工做,所以也推进了python在谷歌内部实现了普遍使用,2012年,他加入世界上最大的云存储公司Dropbox,该公司产品几乎所有基于python开发,全世界的用户天天在上面分享和上传超过10亿个文件。安全

 

 

1.1Python 安装服务器

 

  Python如今已经默认安装在了全部的*nix发行版本上,对于Windows平台,也只须要到Python官网(http://www.python.org)直接下载Windows版本就能够了,但对于版本的选择,可能好多新手会有点困惑,不知道选择2.x or 3.x好,若是你如今还有这个困惑的话,表明你没好好看上面的简介,请回去本身复习,我这里的建议是下载最新的2.x版本使用便可,网络

 

除了官方提供的标准Python版本,还有一些其它的用于特定方向的发行版本,好比PyQt主要是用来作GUI图形界面的,能够用来代替Python的Tkinter,其它替代者还有wxPython、PyGTK等,还有PortablePython,是一个免安装的Windows 发行版本,若是你想在不安装任何python环境的状况下就在windows上运行python程序,只须要把PortablePython 拷贝到你的Windows机器上便可框架

 

 

 

1.2 Python 是一门什么样的语言?运维

编译型和解释型

 

 其实它和汇编语言是同样的:也是有一个负责翻译的程序来对咱们的源代码进行转换,生成相对应的可执行代码。这个过程说得专业一点,就称为编译(Compile),而负责编译的程序天然就称为编译器(Compiler)。若是咱们写的程序代码都包含在一个源文件中,那么一般编译以后就会直接生成一个可执行文件,咱们就能够直接运行了。但对于一个比较复杂的项目,为了方便管理,咱们一般把代码分散在各个源文件中,做为不一样的模块来组织。这时编译各个文件时就会生成目标文件(Object   file)而不是前面说的可执行文件。通常一个源文件的编译都会对应一个目标文件。这些目标文件里的内容基本上已是可执行代码了,但因为只是整个项目的一部分,因此咱们还不能直接运行。待全部的源文件的编译都大功告成,咱们就能够最后把这些半成品的目标文件“打包”成一个可执行文件了,这个工做由另外一个程序负责完成,因为此过程好像是把包含可执行代码的目标文件链接装配起来,因此又称为连接(Link),而负责连接的程序就叫……就叫连接程序(Linker)。连接程序除了连接目标文件外,可能还有各类资源,像图标文件啊、声音文件啊什么的,还要负责去除目标文件之间的冗余重复代码,等等,

 

 

动态语言和静态语言

 

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

 

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

 

  

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

 

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

 

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

 

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

 

 

 

 

 

1.3Python能作什么?

   Python是一门综合性的语言,你几乎能在计算机上经过Python作任何事情,如下是Python应该最普遍的几个方面

    1. 网络应用:包括web网站 、服务器后台服务等,在这方面Python有优秀的web框架如Django\Tornado\Flask等,网络服务框架有著名的Twisted,异步通讯有牛X的eventlet.

    2.     科学运算:随着NumPy、SciPy、matplotlib、ETS等众多程序库的开发,Python愈来愈适合于作科学计算。与科学计算领域最流行的商业软件MATLAB相比,Python是一门真正的通用程序设计语言,比MATLAB所采用的脚本语言的应用范围更普遍,有更多程序库的支持,适用于Windows和Linux等多种平台,彻底免费而且开放源码。虽然MATLAB中的某些高级功能目前还没法替代,可是对于基础性、前瞻性的科研工做和应用系统的开发,彻底能够用Python来完成。

   3. GUI程序:python提供了多个图形开发界面的库,包括PyQt,WxPython,自带的有Tkinter,这些库容许Python程序员很方便的建立完整的、功能健全的GUI用户界面。

    4. 系统管理工具:Python能够是作运维人员最喜欢用的语言了,能够用它来轻松的开发自动化管理工具、监控程序等,事实上如今不少开源软件也都是用Python开发的,如用于IT配置管理的SaltStack\Ansible, 作虚拟化的OpenStack,作备份用的Bacula等。

   5. 其它程序:你知道吗?Python 用来写爬虫也是很拿手的,还有作游戏,以前看社区里有个哥们花了不到300行代码就实现了《愤怒的小鸟》的游戏,还能够用来作嵌入式开发、作驱动程序等,总之,Python能作的事情仍是很是多的,好好学吧,很快你就会fall in love with this great language!

 

第一个Python程序

相关文章
相关标签/搜索