认识Python
Python是一种面向对象、解释型、弱类型的脚本语言、也是一种功能强大的通用型语言。Python 代码非常简单,上手相对容易。它能使程序的结构更加简单清晰,易读易写。
Python简介
Python语言是由一位荷兰的计算机程序员Guido van Rossum(吉多·范罗苏姆)开发出来的,他被称为“Python之父”。当时Guido正在荷兰的CWI(数学与计算机科学研究中心)参与ABC语言的开发,但是ABC语言有一些致命的缺陷:可扩展性差,无法直接读写文件,使它没有流行起来。1989年圣诞节期间,在阿姆斯特丹的Guido为了打发闲暇的时间,决定开发一个新的脚本解释程序来代替ABC语言,来尽量避免ABC出现的问题。(Python受到ABC的影响的原因,如强制缩进原则)同时,G希望开发出一种可以兼容C(Python语言的很多语法来自于C语言)和Shell优点的编程语言,使它既能像C语言那样全面调用计算机的功能接口,又能像Shell那样轻松编程。
Python的名字的由来是Guido为了纪念喜剧演员Monty Python。
主人公:吉多
1989年圣诞节假期期间,吉多开始编写Python语言的编译/解释器。1995年吉多从荷兰移居到美国。2005年,吉多加入谷歌(Google)公司,在那里,他开发了内部代码审查工具Mondrian,为谷歌APP Engine项目工作,还用Python为Google写了面向网页的代码浏览器工具,2013年。他加入了以Python建立主要架构的云服务提供商Dropbox,开发了Mypy。2019年10月,吉多宣布退休。2020年11月,吉多加入微软公司的开发部门。
Python的发展历史
1989年 Python雏形出现
1991年2月 Python代码对外公布
1994年1月 Python1.0正式发布
2000年10月 Python2.0发布(2020年4月更新到目前最后一个版本:2.7.18)
2008年12月 Python3.0发布(2023年10月更新到:3.12.0)
Python的优点
1:解释执行
Python是一种解释型语言,无须编译和链接,可以大量节省程序开发时间。解释器可以交互使用,因此,开发人员在自下而上的程序开发过程中可以轻松地试验语言的特性、编写一次性程序或测试功能
2:面向对象
像Java、C#一样,Python也支持面向对象编程;不同的是,它还支持面向过程编程。面向对象程序设计(Object Oriented Programming,OOP)为结构化和过程化程序设计语言增添了新的活力,其关键在于将数据及对数据的操作行为组合在一起,作为一个相互依存、不可分割的整体——对象。而面向过程程序设计中,程序是由过程或可重用的函数模块构建起来的。
3:开源
Java、PHP、Python等语言都是开放源代码的,广大开发人员对其进行改进,使其越来越完善。
4:易用
Python可在Windows、macOS和UNIX操作系统上使用。一方面它为大型程序提供了比Shell脚本或批处理文件更多的结构和支持。另一方面,Python还提供比C多得多的错误检查工具,并且,作为一种非常高级的语言,它内置了高级数据类型,如灵活的数组和字典。
5:可读性强
Python程序紧凑且可读。用Python编写的程序通常比等效的C、C++或Java程序短得多,原因有:高级数据类型允许在单个语句中表达复杂的操作,语句分组是通过缩进而不是开始和结束括号完成的,不需要变量或参数声明。
6:可扩展
用户可以将Python解释器链接到一个用C编写的应用程序,并将Python用作该应用程序的扩展或命令语言。Python就像胶水一样,可以把不同语言编写的程序融合到一起,实现无缝拼接,更好地发挥不同语言和工具的优势,满足不同应用领域的需求。
7:丰富的基础代码库
用Python开发程序,许多功能不必从零编写,直接使用现成的即可。除了内置的库外,Python还有大量的第三方库,也是别人开发的,供用户直接使用的东西
8:成熟的扩展库
众多开源的科学计算软件包都提供了Python的调用接口,如知名的计算机视觉库OpenCV、三维可可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如,3个十分经典的科学计算扩展库Numpy、SCIPy和Matplotlib分别为Python提供了快速数组处理、数值运算及绘图功能。因此。Python及众多扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。
Python的主要应用领域
1:Web开发
Python是一种解释型的脚本语言,有非常丰富的Web开发框架和模板,比较流行的开发框架有web2py、Django等。许多大型网站就是Python开发的,如YouTube、Instagram等。很多大公司,如Google、Yahoo等,甚至美国国家航空航天局都大量使用Python。使用Python开发Web应用,不仅开发效率高,还能提升运行速度。
2:网络编程
Python提供了socket模块,对socket接口进行了两次封装,支持socket接口的访问;还提供了urlib、httplib、scrapy等大量模块,用于对网页内容进行读取和处理,并可以结合多线程编程及其他有关模块快速开发网页爬虫之类的应用程序。用户可以使用Python编写CGI(Common Gateway Interface,公共网关接口)程序,也可以把Python程序嵌入网页运行。
3:数据分析和科学计算
大数据的分析中涉及了分布式计算、数据可视化、数据库操作等。Python中有完备的生态环境来实现。
Python中用于科学计算与数据可视化的模块化很多,如Numpy、SciPy、Matplotlib、Traits、TVTK、Mayavi、VPython、OpenCV等,涉及的应用领域包括数值计算、符号计算、二维图表、三维数据可视化、三维动画演示、图像处理及界面设计等。
4:人工智能
Python中有很多库可以帮助实现人工智能技术,比如实现数值计算的numpy和scipy、实现机器学习的sklearn、实现神经网络的pybrain等。
5:自动化运维
对于服务器运维而言,Python提供了全方位的工具包。目前几乎所有的Linux发行版都自带了Python的解释器,使用Python脚本可以进行批量化的文件部署和自动化性能测试的执行等。在这些工具的基础上结合Web应用,开发便于运维的工具也变得简单。
6:电子游戏应用
Pygame就是用来开发电子游戏软件的Python模块,使用Pygame模块可以创建功能丰富的游戏和多媒体程序。
7:多媒体开发
PyMedia模块可以对WAV、MP3、AVI等多媒体格式文件进行编码,解码和播放。PyOpenGL模块封装了OpenGL应用程序编程接口,通过该模块可以在Python程序中集成二维或三维图形,PIL(Python Imaging Library,Python图形库)为Python提供了强大的图像处理功能,并提供广泛的图像文件格式支持。
8:数据库应用
Python数据库模块有很多,例如,可以通过内置的sqlite3模块访问SQLite数据库,使用pywin32模块访问Access数据库,使用pymysql模块访问MySQL数据库,使用pywin32模块和pymssql模块访问SQL Server数据库。