Python语言编程导论第一章 绪论
本文介绍了Python语言的学习意义、发展历程和特点。首先阐述了计算机在科学计算、数据处理、人工智能等领域的广泛应用,指出学习算法语言的必要性。随后回顾了Python的诞生背景,由Guido van Rossum于1989年开发,结合了ABC语言的优点。文章重点分析了Python的特点:面向对象、内置数据结构、简洁易读、跨平台、可扩展性强。Python适合用于网站开发、文本处理、科学计算等领域,拥
内容提要
1.为什么要学习一门算法语言
2.计算机语言的发展过程
3.Python语言的由来
4.Python语言的特点
5.Python语言适合做什么
6.安装Python
7.最简单的Python程序
8.一些深受欢迎的Python包
9.比较Python 2和Python 3
一、为什么要学习一门算法语言
信息社会导致计算机技术的广泛应用,如:
科学计算(或数值计算):早期的计算机主要用于科学计算。目前,科学计算仍然是计算机应用的一个重要领域,如高能物理、工程设计、地震预测、气象预报、航天技术等。
数据处理(或信息处理) :用计算机来加工、管理与操作任何形式的数据资料,如企业管理、物资管理、报表统计、帐目计算、信息情报检索等。主要包括数据的采集、转换、分组、组织、计算、排序、存储、检索等。据统计,80%以上的计算机主要用于数据处理,这类工作量大面宽,决定了计算机应用的主导方向。
辅助技术(或计算机辅助设计、制造、测试,CAD/CAM/CAT) :用计算机辅助进行工程设计、产品制造、性能测试;采用辅助技术可以使设计工作半自动化或自动化,不仅可以大大缩短设计周期,节省人力物力,而且能降低生产成本,达到最佳设计效果,保证产品质量。
过程控制(或实时控制) : 用计算机作为控制部件对单台设备或整个生产过程进行控制。其基本原理为:将实时采集的数据送入计算机内与控制模型进行比较,然后再由计算机反馈信息去调节及控制整个生产过程,使之按最优化方案进行。如:在卫星、导弹发射等国防尖端技术领域,更是离不开计算机的实时控制。
人工智能(或智能模拟) :用计算机来模仿人的智能,使计算机具有识别语言、文字、图形和进行推理、学习以及适应环境的能力。如应用在医疗工作中的医学专家系统,能模拟医生分析病情,为病人开出药方,提供病情咨询等。机器制造业中采用的智能机器人,可以完成各种复杂加工、承担有害与危险作业。
网络应用 :计算机网络的建立,不仅解决了一个单位、一个地区、一个国家中计算机与计算机之间的通信,各种软、硬件资源的共享,也大大促进了国际间的文字、图像、视频和声音等各类数据的传输与处理。目前遍布全球的互联网,已把地球上的大多数国家联系在一起,信息共享、文件传输、电子商务、电子政务等领域迅速发展,使得人类社会信息化程度日益提高,对人类的生产、生活的各个方面都提供了便利。 所有的计算机程序都是使用某种算法语言实现的。
二、计算机语言发展过程

三、Python语言的由来
Python的创始人为荷兰人Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为 ABC 语言的一种继承。之所以选Python(大蟒蛇的意思)作为程序的名字,是因为他是一个Monty Python的飞行马戏团的爱好者。
ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是非开放造成的。Guido 决心在 Python 中避免这一错误(的确如此,Python 与其它的语言如C、C++和Java结合的非常好)。同时,他还想实现在 ABC 中闪现过但未曾实现的东西。就这样,Python在Guido手中诞生了。
可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。实际上,Python的第一个版本实现是在Mac机上。 (转自互联网)
Python语言已诞生20多年了,正逐渐发展为主流程序设计语言之一,目前在TIOBE编程语言排行榜中长期占据第七、八的位次,近期又有上升。
目前,Python由世界各地的数十位程序员(包括van Rossum)负责维护。
Python的官方定义为:Python是一种解释型的、面向对象的、带有动态语义的高级程序设计语言。


有人说:
编写C程序就像一群人拿着剃刀在刚打过蜡的舞场内跳快舞。——Waldi Ravens
C++:难学更难用,设计如此。——匿名
在很多方面,Java就是C++。——Michael Feldman
四、Python语言特点
程序设计语言在不断发展,从最初的机器语言、汇编语言到后来的C、Pascal语言,发展到现在的C++、Java等高级编程语言。程序设计的难度在不断减小,软件的开发和设计已经形成了一套标准,开发工作已经不再是复杂的任务。最初只能使用机器代码编写程序,而现在可以使用具有良好调试功能的IDE环境编程。
Python使用C语言开发,但Python不再有C语言中的指针等复杂数据类型。Python的简洁性使得软件的代码大幅度减少,开发任务进一步简化。程序员关注的重点不再是语法特性,而是程序所要实现的任务。
Python语言有许多重要的特性,而且有些特性是富有创造性的。
1、面向对象特性
面向对象的程序设计解决了结构化程序设计的复杂性,使得程序设计更贴近现实生活。 结构化程序设计把数据和逻辑混在一起,不便于程序的维护。面向对象的程序设计抽象出对象的行为和属性,把行为和属性分离开,但又合理地组织在一起。 Python语言具有很强的面向对象特性,而且简化了面向对象的实现,它消除了保护类型、抽象类、接口等面向对象的元素,使得面向对象的概念更容易理解。
2、内置的数据结构
Python提供了一些内置的数据结构,这些数据结构实现了类似Java中集合类的功能。内置数据结构的出现简化了程序设计。 Python的数据结构包括元组、列表、字典、集合等。 元组相当于“只读”的数组,列表可以作为可变长度的数组使用,字典相当于Java中的HashTable类型。
3、简单性
Python语言的关键字比较少,它没有分号、begin、end等标记,代码块使用空格或制表键缩进的方式来分隔。 Python的代码简洁、短小、易于阅读。 Python简化了循环语句,即使程序结构很复杂也能快速读懂。
4、健壮性
Python提供了异常处理机制,能捕获程序的异常情况。此外Python的堆栈跟踪对象能够指出程序出错的位置和出错的原因。 异常机制能够避免不安全退出的情况,同时能够帮助程序员调试程序。
5、跨平台性
Python会先被编译为与平台相关的二进制代码,然后再解释执行。这种方式类似于Java,但Python的执行速度提高了。 Python编写的应用程序可以运行在Windows、Unix、Linux等不同的操作系统上。在一种操作系统上编写的Python代码只需做少量修改,就可移植到其他的操作系统上。
6、可扩展性
Python是采用C开发的语言,因此可以使用C扩展Python,可以给Python添加新的模块、新的类。同时Python可以嵌入C、C++语言开发项目中,使程序具备脚本语言的特性。
7、动态性
Python与JavaScript、PHP、Perl等语言类似,它不需要另外声明变量、直接赋值即可创建一个新的变量。
8、强类型语言
Python的变量创建后会对应一种类型,它可根据赋值表达式的内容决定变量的类型。Python在内部建立了管理这些变量的机制,不同类型的变量需要类型转换。
9、应用广泛
Python语言应用于数据库、网络、图形图像、数学计算、Web开发、操作系统扩展等领域。有许多第三方库支持Python。
五、Python适合做什么
虽然Python是一种通用语言,可用于编写任何类型的程序,但它常用于编写下述应用程序。
脚本。这些简短的程序自动执行常见的管理任务,如在系统中新增用户、将文件上传到网站、在不使用浏览器的情况下下载网页等。
网站开发。作为快速创建动态网站的工具,Django、Bottle和Zope等Python项目深受开发人员欢迎。
文本处理。Python在字符串和文本文件处理方面提供了强大的支持。
图像处理。如PIL库(目前已不再维护,取而代之的有Pillow)
科学计算。网上有许多卓越的Python科学计算库,提供了用以统计、数学计算和绘图的函数。如:NumPy。
教育。鉴于Python简洁实用,越来越多的学习将其作为第一门编程教学语言。
Python是一种能让程序员容易实现编程想法的程序设计语言,可以花较少的代价实现想要的功能,且编写的程序清晰易懂,可以节省大量编程时间。
由于Python是解释型高级语言,其速度比C++、C#、Java等语言慢,因此不会使用其开发新操作系统。 如果是C程序员,可以用C实现制约程序性能的关键部分,让其和使用Python的部分相互协作。
六、安装
如果之前没有任何编程经历,选择Python作为学习编程入门是不错的选择。
1、访问Python下载页面www.python.org/download。

2、选择最新的Python 3.x版本,打开下载页面。
3、根据使用的操作系统,单击相应的安装程序链接。
4、下载完毕之后,双击安装程序开设安装。
从开始菜单中选择Python 3.x的选项,选择其中的IDLE(Python GUI):

启动之后的IDEL编辑器初始屏幕:

七、最简单的Python程序

例1-1:经典程序—在屏幕输出“Hello World!” 直接在shell中实现:

八、一些深受欢迎的Python包
Python深受欢迎的原因之一是有大量高品质的库,可帮助完成各种软件任务。
在这些库中,很多都只支持特定的Python版本。具体地说,很多包还不支持Python 3,因此要使用它们,可能需要使用Python 2.x。但如果熟悉Python 3,使用Python 2并不难。
PIL:Python图像处理库
PLI(http://www.pythonware.com/products/pil/index.htm)是一个图像处理库,支持众多图像格式,可用于执行裁剪、大小调整、旋转和滤波效果等操作。
Tkinter:Python GUI Tkinter是Python库自带的,是访问流行工具包TK GUI的标准方式。如果要使用Python创建图形用户界面(GUI),应首先考虑使用这个包。有关该包的更详细信息,参阅http://docs.python.org/3/library/tkinter.html
Django:交互式网站 Django(www.djangoproject.com)是一个用于创建交互式网站的框架。
Bottle:交互式网站 Bottle(http://bottlepy.org/docs/dev/)类似于Django,它也是一个用于创建交互式网站的框架。不同的是,Bottle是一个轻量级的小型框架,更适合用于开发小型网站。
Pygame:2D动画 Pygame(www.pygame.org)能够创建和控制二维动画,尤其适合开发游戏。它提供了创建动画和声音的工具,还提供了控制游戏杆等输入设备的工具。Pygame网站还提供了初步教程和示例程序。
SciPy:科学计算 SciPy(www.scipy.org)是一个用于科学计算的大型软件工具库,深受欢迎,还有专门的会议。它提供的数学软件可以完成:求解最优化问题、执行线性代数数字计算、处理信号等。
Twisted:网络编程 Twisted(http://twistedmatrix.com/trac)是一个深受欢迎的Python网络编程库,支持众多网络协议,可用于开发Web服务器、邮件服务器和聊天客户端/服务器等。
PyPI:Python包索引 Python包索引(http://pypi.python.org/pypi)是一个更新频繁的清单,列出了数千个用户提交的Python包。如果要寻找专用Python库或了解Python已用于哪些方面,可在此查询。
九、比较Python 2和Python 3
Python 3发布于2008年底,是一次重大的升级。 Python 3的有些改进不向后与Python 2兼容,因此Python 2始终与Python 3并行地向前发展。 全面了解Python 3和Python 2之间的差异,可参阅What’s New in Python 3.0(http://docs.python.org/3/whatsnew/3.0.html)。
工具2to3(http://docs.python.org/3/library/2to3.html )几乎能将任何Python 2程序自动转换为等价的Python 3程序。
1、Python 3新增功能

在Python 3中, print是函数,易于修改;而在Python 2中,print是语句,就像if和for一样。
Python 2有两种类:老式类和新式类,而Python 3完全抛弃了老式类。
Python 3重命名了两个重要函数:函数input和range在Python 2中分别名为raw_input和xrange。
Python 3支持第六章要介绍的格式字符串,而Python 2不支持。Python 2只支持使用运算符%的字符串插入。
2、该使用哪个Python版本
如果必须使用Python 2程序,可能应选择Python 2;否则,就得将既有的Python 2程序转换为Python 3程序,而这可能很难。
有些专用库只支持某个Python版本,如果需要这样的库,在选择Python 版本方面可能受到限制。
如果是刚从事编程工作或刚开始学习Python,不用维护老式Python程序,也无需使用专用库,使用Python 3可能是最佳选择。
更多推荐

所有评论(0)