资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第1章 Python 语言基础 Python 语言以优雅、清晰、简洁的语法特点,能将初学者从语法细节中摆脱出来,而专注于解决问题的方法、分析程序本身的逻辑和算法。Python 语言还具有大量优秀的第三方函数模块,对学科交叉应用很有帮助。目前,基于 Python 语言的相关技术正在飞速发展,用户数量急剧扩大,在软件开发领域有着广泛的应用。 程序(program)是用程序设计语言所描述的解决问题的方法和步骤。从组成上讲,程序包括数据和 对数据的操作两部分。 数据是程序加工处理的对象, 操作则反映了对数据的处理方法, 体现了程序的功能。用计算机解决一个实际问题,必须先对该问题进行抽象,以恰当的方式来描述问题中的数据,这关系到能否方便、高效地处理数据。程序中的数据描述涉及数据类型、各类型数据的表示方法及运算规则。 本章介绍 Python 语言的发展与特点、 Python 程序的运行环境、 Python 数据类型、 各种形式 Python数据的表示方法以及 Python 的基本运算。 1.1 Python 语言概述语言概述 Python 是一种面向对象、解释型、动态数据类型的高级程序设计语言,具有简洁的语法规则,使得学习程序设计更容易,同时它具有强大的功能,能满足大多数应用领域的开发需求。从学习程序设计的角度,选择 Python 作为入门语言是十分合适的。 1.1.1 Python 语言的发展历史 Python 语言起源于 1989 年年末。当时,荷兰国家数学与计算机科学研究所(CWI)的研究员吉多范罗苏姆(Guido van Rossum)需要一种高级脚本编程语言,为其研究小组的Amoeba 分布式操作系统执行管理任务。为创建新语言,吉多从高级教学语言 ABC(All Basic Code)汲取了大量语法,并从系统编程语言 Modula-3 借鉴了错误处理机制。吉多把这种新的语言命名为 Python,是因为他是BBC 电视剧蒙提派森的飞行马戏团(Monty Pythons Flying Circus)的爱好者。 ABC 是由吉多参加设计的一种教学语言。就吉多本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是,ABC 语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在 Python 中避免这一缺陷,并取得了非常好的效果。 Python 语言的第一个版本于 1991 年年初公开发行。由于功能强大和采用开源方式发行,Python发展很快,用户越来越多,形成了一个庞大的语言社区。 Python 2.0 于 2000 年 10 月发布,增加了许多新的语言特性。同时,整个开发过程更加透明,社 区对开发进度的影响逐渐扩大。Python 3.0 于 2008 年 12 月发布,此版本不完全兼容之前的 Python 版本,导致用早期 Python 版本设计的程序无法在 Python 3.0 上运行。不过,Python 2.6 和 2.7 作为过渡版本,虽基本使用 Python 2.x 的语法,但同时考虑了向 Python 3.0 的迁移,有些新特性后来也被移植到Python 2.6 和 2.7 版本中。 2 Python 语言程序设计 在 Python 发展过程中,形成了 Python 2.x 和 Python 3.x 两个版本,目前正朝着 Python 3.x 进化。Python 2.x 和 Python 3.x 两个版本是不兼容的,由于历史原因,原有的大量第三方函数模块是用2.x 版实现的。 随着Python的普及与发展, 近年来Python 3.x下的第三方函数模块日渐增多。 本书选择Windows 操作系统下的Python 3.x 版本作为程序实现环境(下载安装时的最高版本是 Python 3.5.1) 。书中在很多地方也介绍了 Python 3.x 与 Python 2.x 的差别。 1.1.2 Python 语言的特点 人们学习程序设计往往是从学习一种高级语言开始的,因为语言是描述程序的工具,熟悉一种高级语言是程序设计的基础。高级语言有很多,任何一种语言有其自身诞生的背景,从而决定了其特点 和擅长的应用领域,例如,FORTRAN 语言诞生在计算机发展的早期,主要用于科学计算;C 语言具有代码简洁紧凑、执行效率高、贴近硬件、可移植性好等特点,广泛应用于系统软件、嵌入式软件的开发。Python 语言作为一种诞生较晚的高级语言,有其自身的特点。 1Python 语言的优势 具体来说,Python 语言具有如下优势。 (1) 简单易学。 Python 语言语法结构简单, 组成一个 Python 程序没有太多的语法细节和规则要求,“信手拈来”就可以组成一个程序。一个良好的 Python 程序就像一篇英语文章一样,代表问题求解过程的描述。而其他高级语言由于其语法过于灵活,所需要掌握的细节概念非常庞杂,即使是实现最简单的功能, 也要涉及很多概念。 例如, 书写一个FORTRAN 程序或一个C 程序都有很多规则要求。 Python语言具有优雅、清晰、简洁的语法特点,能将初学者从语法细节中摆脱出来,而专注于解决问题的方法、分析程序本身的逻辑和算法。这种特点对学习程序设计是很有好处的。 (2)程序可读性好。Python 语言和其他高级语言相比,一个重要的区别就是,一个语句块的界限完全是由每行的首字符在这一行的位置来决定的(C 语言用一对大括号“”来明确界定语句块的边界,与字符的位置毫无关系) 。通过强制程序缩进,Python 语言确实使得程序具有很好的可读性,同时 Python 的缩进规则也有利于程序员养成良好的程序设计习惯。 (3)丰富的数据类型。除了基本的数值类型外,Python 语言还提供了字符串、列表、元组、字典和集合等丰富的复合数据类型,利用这些数据类型,可以更方便地解决许多实际问题,如文本处理、 数据分析等。 (4)开源的语言。Python语言是一种开源的语言,可移植到多种操作系统,只要避免使用依赖于特定操作系统的特性,Python程序不需修改就可以在各种平台上运行。Python的开源特性使得有很多的开放社区对用户提供快速的技术支持,学习和使用Python技术不再是孤军奋战。如今,各种社区提供了成千上万不同功能的开源函数模块,而且还在不断地发展,这为基于Python语言的快速开发提供了强大支持。 (5) 解释型的语言。 用 Python 语言编写的程序不需要编译成二进制代码, 而可以直接运行源代码。 在计算机内部,Python 解释器把.py 文件中的源代码转换成 Python 的字节码(Byte code) ,然后再由Python 虚拟机(Virtual machine)一条一条地执行字节码指令,从而完成程序的执行。 对于 Python 的解释语言特性,要一分为二地看待。一方面,每次运行时都要将源文件转换成字节码,然后再由虚拟机执行字节码。较之于编译型语言,每次运行都会多出两道工序,所以程序的执行性能会受到影响。另一方面,由于不用关心程序的编译以及库的连接等问题,所以程序调试和维护会变得更加轻松方便,同时虚拟机距离物理机器更远了,所以 Python 程序更加易于移植,实际上不需改 动就能在多种平台上运行。 (6)面向对象的语言。Python 语言既可以面向过程,也可以面向对象,支持灵活的程序设计方式。 3 第 1 章 Python 语言基础2Python 语言的局限性 虽然 Python 语言是一个非常成功的语言,但也有它的局限性。相比其他一些语言(如 C、C+语 言) ,Python 程序的运行速度比较慢,对于速度有着较高的要求的应用,就要考虑 Python 是否能满足需要。不过这一点可以通过使用 C 语言编写关键模块,然后由 Python 调用的方式加以解决。而且现在计算机的硬件配置在不断提高,对于一般的开发来说,速度已经不成问题。此外,Python 用代码缩进来区分语法逻辑的方式还是给很多初学者带来了困惑,即便是很有经验的 Python 程序员,也可能陷入陷阱当中。最常见的情况是Tab 和空格的混用会导致错误,而这是用肉眼无法分别的。 1.1.3 Python 语言的应用领域 由于 Python 语言自身的特点, 加上大量第三方函数模块的支持, Python 语言得到越来越广泛的应用。利用 Python 进行应用开发,熟练地使用各种函数模块无疑是十分重要的,但首先要掌握 Python的基础知识, 这是应用的基础。 本书主要介绍 Python 程序设计的基础知识, 不涉及过多的第三方资源,但在学习伊始,了解 Python 的应用领域及相关的函数模块是十分必要的。 1Windows 系统编程 Python是跨平台的程序设计语言, 在Windows系统下, 通过使用pywin32模块提供的Windows API函数接口,就可以编写与 Windows 系统底层功能相关的Python 程序,包括访问注册表、调用 ActiveX控件以及各种COM 组件等工作。 还有许多其他的日常系统维护和管理工作也可以交给Python 来实现。 利用 py2exe 模块可以将 Python 程序转换为.exe 可执行程序, 使得 Python 程序可以脱离 Python 系统环境来运行。 2科学计算与数据可视化 科学计算也称数值计算,是研究工程问题的近似求解方法,并在计算机上进行程序实现的一门科学,既有数学理论上的抽象性和严谨性,又有程序设计技术上的实用性和实验性的特征。随着科学计算与数据可视化 Python 模块的不断产生,使得 Python 语言可以在科学计算与数据可视化领域发挥独特的作用。 Python 中用于科学计算与数据可视化的模块有很多,例如 NumPy、SciPy、SymPy、Matplotlib、Traits、TraitsUI、Chaco、TVTK、Mayavi、VPython、OpenCV 等,涉及的应用领域包括数值计算、符号计算、二维图表、三维数据可视化、三维动画演示、图像处理以及界面设计等。 NumPy 模块提供了一个在 Python 中做科学计算的基础库,主要用于矩阵处理与运算;SciPy 模块是在 NumPy 模块的基础上开发的,提供了一个在 Python 中做科学计算的工具集,例如,统计工具(statistics) 、最优化工具(optimization) 、数值积分工具(numerical integration) 、线性代数工具(linear algebra) 、 傅里叶变换工具 (Fourier transforms) 、 信号处理工具 (signal processing) 、 图像处理工具 (image processing) 、常微分方程求解工具(ODE solvers)等;Matplotlib 是比较常用的绘图模块,可以快速地将计算结果以不同类型的图形展示出来。 3数据库应用 在数据库应用方面,Python 语言提供了对所有主流关系数据库管理系统的接口,包括 SQLite、 Access、MySQL、SQL Server、Oracle 等。Python 数据库模块有很多,例如,可以通过内置的 sqlite3模块访问 SQLite 数据库, 使用 pywin32 模块访问 Access 数据库, 使用 pymysql 模块访问 MySQL 数据库,使用 pywin32 和 pymssql 模块来访问 SQL Sever 数据库。 4 Python 语言程序设计 4多媒体应用 Python 多媒体应用开发可以为图形、图像、声音、视频等多媒体数据处理提供强有力的支持。 PyMedia 模块是一个用于多媒体操作的 Python 模块,可以对 WAV、MP3、AVI 等多媒体格式文件进行编码、解码和播放;PyOpenGL 模块封装了 OpenGL 应用程序编程接口,通过该模块可在 Python程序中集成二维或三维图形;PIL(P
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号