《python小白入门系列教程》 专栏 • 第02篇
文 | 曾庆林
深度好文:3588字 | 7分钟浏览
1. Python的出世
1989年 Guido van Rossum开始编写Python语言编辑器(龟叔为了打发无聊的圣诞节)
1991年 第一个Python编译器诞生(正式诞生)
1994年 Python1.0 减少内置函数
2004年 Python204 web框架、Django
2008年 Python2.6 Python3.0(同一年出2个版本)
Python2 :源码不规范、凌乱、反复代码太多吧
Python3 :规范、对立、去重
2. Python优缺点
Python语言特点:柔美、简略、清晰。
编译型 | 解释型 |
一次性将所有程序编译成二进制文件 | 进制文件 当程序执行时,一行一行的解释 |
开发效率低,不能跨平台 | 开发效率高,能够跨平台 |
运行速度快 | 运行速度慢 |
C,C++等等 | python ,php等等 |
长处
简略————Python是一种代表简略主义思维的语言。Python的这种伪代码实质是它最大的长处之一。它使你可能专一于解决问题而不是去搞明确语言自身。
易学————就如同你行将看到的一样,Python极其容易上手,Python有极其简略的语法。
收费、开源————Python是FLOSS(自在/开放源码软件)之一。简略地说,你能够自在地公布这个软件的拷贝、浏览它的源代码、对它做改变、把它的一部分用于新的自由软件中。
高层语言————当你用Python语言编写程序的时候,你无需思考诸如如何治理你的程序应用的内存一类的底层细节。
可移植性————因为它的开源实质,Python曾经被移植在许多平台上(通过改变使它可能工作在不同平台上)。
解释型————一个用编译性语言比方C或C++写的程序能够从源文件(即C或C++语言)转换到一个你的计算机应用的语言(二进制代码,即0和1)。
这个过程通过编译器和不同的标记、选项实现。当你运行你的程序的时候,连贯/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不须要编译成二进制代码。你能够间接从源代码运行程序。
在计算机外部,Python解释器把源代码转换成称为字节码的两头模式,而后再把它翻译成计算机应用的机器语言并运行。事实上,因为你不再须要放心如何编译程序,如何确保连贯转载正确的库等等,所有这所有使得应用Python更加简略。因为你只须要把你的Python程序拷贝到另外一台计算机上,它就能够工作了,这也使得你的Python程序更加易于移植。
面向对象————Python既反对面向过程的编程也反对面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和性能组合而成的对象构建起来的。与其余次要的语言如C++和Java相比,Python以一种十分弱小又简略的形式实现面向对象编程。
可扩展性————如果你须要你的一段要害代码运行得更快或者心愿某些算法不公开,你能够把你的局部程序用C或C++编写,而后在你的Python程序中应用它们。
丰盛的库————Python规范库的确很宏大。它能够帮忙你解决各种工作,包含正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、明码零碎、GUI(图形用户界面)、Tk和其余与零碎无关的操作。记住,只有装置了Python,所有这些性能都是可用的。这被称作Python的“功能齐全”理念。除了规范库以外,还有许多其余高质量的库,如wxPython、Twisted和Python图像库等等。
标准的代码————Python采纳强制缩进的形式使得代码具备极佳的可读性。
毛病
运行速度,有速度要求的话,最好用C++改写要害局部。
代码不能加密。
国内市场较小(国内以python来做次要开发的,目前只有一些web2.0公司)。但时间推移,目前很多国内软件公司,尤其是游戏公司,也开始规模应用。
中文材料匮乏(好的python中文材料比比皆是),托社区的福,有几本优良的教材曾经被翻译了,但入门级教材多,高级内容还是只能看英语版。
构架抉择太多(没有像C#这样的官网.net构架,也没有像ruby因为历史较短,构架开发的绝对集中。Ruby on Rails 构架开发中小型web程序天下无敌)。不过这也从另一个侧面阐明,python比拟优良,吸引的人才多,我的项目也多。
3.Python的利用
(1)零碎编程
提供API(ApplicationProgrammingInterface应用程序编程接口),能不便进行系统维护和治理,Linux下标志性语言之一,是很多系统管理员现实的编程工具。
(2)图形处理
有PIL、Tkinter等图形库反对,能不便进行图形处理。
(3)数学解决
NumPy扩大提供大量与许多规范数学库的接口。
(4)文本处理
python提供的re模块能反对正则表达式,还提供SGML,XML剖析模块,许多程序员利用python进行XML程序的开发。
(5)数据库编程
程序员可通过遵循PythonDB-API(数据库应用程序编程接口)标准的模块与MicrosoftSQLServer,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个残缺的SQL环境。
(6)网络编程
提供丰盛的模块反对sockets编程,能不便疾速地开发分布式应用程序。很多大规模软件开发打算例如Zope,Mnet及BitTorrent.Google都在宽泛地应用它。
(7)Web编程
利用的开发语言,反对最新的XML技术。
(8)多媒体利用
Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。
(9)pymo引擎
PYMO全称为pythonmemoriesoff,是一款运行于SymbianS60V3,Symbian3,S60V5,Symbian3,Android零碎上的AVG游戏引擎。因其基于python2.0平台开发,并且实用于创立秋之回顾(memoriesoff)格调的AVG游戏,故命名为PYMO。
(10)黑客编程
python有一个hack的库,内置了你相熟的或不相熟的函数,然而短少成就感。
4. 利用场景
(1)Web利用开发
Python常常被用于Web开发。比方,通过mod_wsgi模块,Apache能够运行用Python编写的Web程序。Python定义了WSGI规范利用接口来协调Http服务器与基于Python的Web程序之间的通信。一些Web框架,如Django,TurboGears,web2py,Zope等,能够让程序员轻松地开发和治理简单的Web程序。
(2)操作系统治理、服务器运维的自动化脚本
在很多操作系统里,Python是规范的零碎组件。大多数Linux发行版以及NetBSD、OpenBSD和Mac OS X都集成了Python,能够在终端下间接运行Python。有一些Linux发行版的装置器应用Python语言编写,比方Ubuntu的Ubiquity装置器,Red Hat Linux和Fedora的Anaconda装置器。
Gentoo Linux应用Python来编写它的Portage包管理系统。Python规范库蕴含了多个调用操作系统性能的库。通过pywin32这个第三方软件 包,Python可能拜访Windows的COM服务及其它Windows API。应用IronPython,Python程序可能间接调用.Net Framework。
一般说来,Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于一般的shell脚本。
(3)科学计算
NumPy,SciPy,Matplotlib能够让Python程序员编写科学计算程序。
(4)桌面软件
PyQt、PySide、wxPython、PyGTK是Python疾速开发桌面应用程序的利器。
(5)服务器软件(网络软件)
Python对于各种网络协议的反对很欠缺,因而常常被用于编写服务器软件、网络爬虫。第三方库Twisted反对异步网络编程和少数规范的网络协议(蕴含客户端和服务器),并且提供了多种工具,被宽泛用于编写高性能的服务器软件。
(6)游戏
很多游戏应用C++编写图形显示等高性能模块,而应用Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的性能更简略、体积更小;而Python则反对更多的个性和数据类型。
(7)构思实现,产品晚期原型和迭代
YouTube、Google、Yahoo!、NASA都在外部大量地应用Python。
5. 利用方向
(1)惯例软件开发
Python反对函数式编程和OOP面向对象编程,可能承当任何品种软件的开发工作,因而惯例的软件开发、脚本编写、网络编程等都属于标配能力。
(2)科学计算
随着NumPy,SciPy,Matplotlib,Enthoughtlibrarys等泛滥程序库的开发,Python越来越适宜于做科学计算、绘制高质量的2D和3D图像。
和科学计算畛域最风行的商业软件Matlab相比,Python是一门通用的程序设计语言,比Matlab所采纳的脚本语言的利用范畴更宽泛,有更多的程序库的反对。尽管Matlab中的许多高级性能和toolbox目前还是无奈代替的,不过在日常的科研开发之中依然有很多的工作是能够用Python代劳的。
(3)自动化运维
这简直是Python利用的自留地,作为运维工程师首选的编程语言,Python在自动化运维方面曾经深入人心,比方Saltstack和Ansible都是赫赫有名的自动化平台。
(4)云计算
开源云计算解决方案OpenStack就是基于Python开发的,搞云计算的同学都懂的。
(5)WEB开发
基于Python的Web开发框架不要太多,比方耳熟能详的Django,还有Tornado,Flask。其中的Python+Django架构,利用范畴十分广,开发速度十分快,学习门槛也很低,可能帮忙你疾速的搭建起可用的WEB服务。
(6)网络爬虫
也称网络蜘蛛,是大数据行业获取数据的外围工具。没有网络爬虫主动地、不分昼夜地、高智能地在互联网上爬取收费的数据,那些大数据相干的公司恐怕要少四分之三。可能编写网络爬虫的编程语言有不少,但Python相对是其中的支流之一,其Scripy爬虫框架利用十分宽泛。
(7)数据分析
在大量数据的根底上,联合科学计算、机器学习等技术,对数据进行荡涤、去重、规格化和针对性的剖析是大数据行业的基石。Python是数据分析的支流语言之一。
(8)人工智能
Python在人工智能大领域畛域内的机器学习、神经网络、深度学习等方面都是支流的编程语言,失去宽泛的反对和利用。
6. 常识
Python的作者,Guido von Rossum,荷兰人。
Python的发音与拼写
Python的意思是蟒蛇,源于作者喜爱的一部电视剧 (C呢?)
Python的作者是Guido van Rossum(龟叔)
Python是龟叔在1989年圣诞节期间,为了打发无聊的圣诞节而用C编写的一个编程语言
Python正式诞生于1991年
Python的解释器现在有多个语言实现,咱们罕用的是CPython(官网版本的C语言实现),其余还有Jython(能够运行在Java平台)、IronPython(能够运行在.NET和Mono平台)、PyPy(Python实现的,反对JIT即时编译)
Python目前有两个版本,Python2和Python3
Life is shot, you need Python. 人生苦短,我用Python。
手机练习地址:
https://www.520mg.com/it
IT 入门感激关注
</div>