程序设计基础 PYTHON语言
- 格式:pdf
- 大小:907.09 KB
- 文档页数:7
1.1 计算机的概念计算机,不可否认,是人类至今朵伟大的发明之一。
计算机的英文C ompute r,最初指专门负责计算的人,到了20世纪中期演变成为计算设备。
计算机的故事要从人类久远但延续至今的计算需求说起。
人类为何需要计算?很显然,人类在敬畏自然、认识自然甚至想驾驭自然的过程中,为了分析自然规律,需要对问题进行最化计算。
人类社会对有限资源的分配、对人类活动的有效管理,需要规划和计算。
人类探索思维空间的数学、逻辑和哲学问题,需要推理和计算。
到了21世纪,计算需求已经深入到现代人的日常生活中,无处不在。
计算需求的方法问题由计算科学来解决,具体的计算由计算设备来实现。
广义上讲,计算设备包含计算机,但不限于此。
计算机的定义有很多种,如下定义更为符合计算机的本质:“计算机”是能够根据指令操作数据的设备(A computer is a machine that manipulates data acco呻ng to a list of in s tru c tion s)。
从定义可以看出,计算机有两个显著特性:功能性和可编程性。
计算机的功能性指对数据的操作,表现为数据计算、输入输出处理和结果保存等。
计算机的可编程性指它可以根据一系列指令自动地、可预测地、准确地完成操作者的意图。
理解计算机应该结合计算机定义中的两个特征,只要设备具备了计算的功能性和操作的可编程性,就可以看成是计算机的一种。
区分计算设备是否是计算机并不依靠其制造材质,计算机不一定是电子的,例如光计算机、扭子计算机、超导计算机、生物计算机,这些都不是建立在电子学基础上,但都是计算机概念的延伸。
除特殊说明外,本书后续内容中”计算机”均指电子计算机。
计算机技术发展主要围绕计算机的功能性和可编程性展开。
一方面,计算机硬件所依赖的集成电路规模按照摩尔定律以指数方式增长,计算机运行速度也接近几何级数快速增加。
另一方面,表达计算机可编程性的程序设计语言也经历了机器语言、汇编语言和高级语言3个阶段。
1.2 程序设计语言I.2. I 程序设计诏言概述程序设计语言是计算机能够理解和识别操作的一种交互体系,它按照特定的规则组织计算机指令,使计算机能够自动进行各种操作处理。
按照程序设计语言规则组织起来的一组计算机指令称为计算机程序。
程序设计语言包括3个大类,即机器语言、汇编语言和高级语言。
机器语言是一种二进制语言,它直接使用二进制代码表达指令,是计算机硬件可以直接识别和执行的程序设计语言。
汇编语言使用助记符与机器语言中的指令进行一一对应。
由千这两类语言都直接针对计算机硬件,所以统称为低级语言。
高级语言区别于低级语言,是接近千自然语言的一种计算机语言,可以更容易地描述计算问题,并利用计算机解决计算问题。
如果能像科幻电影演绎的那样用母语(人类语言)驱动计算机将是最完美的事情。
遗憾的是,尽管许多一流的计算机科学家为此做过很多努力,仍然无法在可预见的未来设计出能完全理解人类语言的计算机。
诚然,即使计算机能理解人类语言,人类语言也不适合描述复杂算法。
人类语言具有不严密和模糊的缺点。
例如,“我看见一个人在公园,带着望远镜”这句话,基千常识和经验,交谈双方大多数情况下能理解彼此表达的意思,但深究一下,究竟是“我”带着望远镜,还是“那个人“带着望远镜呢?这种模糊性也经常产生错误理解和歧义。
相比人类语言,程序设计语言的结构在语法上十分精密,在语义上定义准确。
第一个广泛应用的高级语言是C语言,诞生千1972年。
随看程序设计语言40余年的发展,已经出现了很多种高级语言,也有很多高级语言退出了历史舞台。
下面这些是常用的程序设计语言:C、C++、C#、FORTRAN、Java、JavaScript、PHP、Pyth on、SQL、Go、D el p h i、HTM L、V e ri l o g等。
1.2. 2 编详和解释高级语言按照执行方法的不同可以分成2个类别:静态语言和脚本语言。
这两种类型语言采用不同的执行方式,静态语言采用编译执行,脚本语言采用解释执行。
编译是一个将源代码转换成目标代码的过程,通常,源代码是高级语言,目标代码是机器语言,执行编译的计算机程序称为编译器。
图I.1展示了程序的编译过程,其中,虚线表示目标代码被计算机运行。
编译器将源代码转换成目标代码,计算机可以立即或稍后运行这个目标代码。
解释是一个将源代码逐条转换成目标代码同时逐条运行目标代码的过程。
执行解释的计算机程序称为解释器。
图I.2展示了程序的解释过程,其中,高级语言源代码与输入数据一同输入给解释器,然后输出运行结果。
图I I N厅的谝计过伟l图I.2 f',,厅的韶释过竹'解释和编译的区别在于编译是一次性地翻译,一旦程序被编译,不再需要编译程序或者源代码。
解释则在每次运行时都需要源代码和解释器。
编译过程只进行一次,所以,编译执行速度并不是关键,目标代码的运行速度是关键。
为此,可以在编译器中集成一些优化技术,使生成的目标代码具备更好的执行效率。
然而,解释器中却不能集成太多优化技术,因为优化技术会消耗运行时间,使得整个程序的执行速度受到影响。
采用编译方法有如下好处。
·对于相同源代码,编译所产生的目标代码执行速度更快。
·目标代码不需要编译器就可以运行,在相同操作系统上使用灵活。
采用解释方法有如下好处。
·解释执行需要保留源代码,使得程序纠错和维护十分灵活。
·只要存在解释器,源代码可以在任何操作系统上运行,可移植性好。
简单说,解释执行尽管牺牲了一定的执行性能,但可以支持跨硬件或操作系统平台,保留源代码对升级维护十分有利,适合非性能关键的程序运行场呆。
Python语言是一种典型的脚本语言,采用解释执行的方式,但它的解释器也保留了编译器的功能,随着程序运行,解释器也会生成一个完整的目标代码。
这种将解释器和编译器结合的新解释器也是现代脚本语言为了提升计算性能的一种有益演进。
]. 2. 3 计究机编程随着计算机科学技术的发展,计算机已经成为社会活动的普通工具,掌握一定编程技术有助于更好地利用计算机解决所面对的问题。
此外,计算机已经无处不在,不懂程序设计的人经常感觉好像被计算机控制或绑架,学会编程可以驾驭计算机,提升心理满足感和安全感。
计算机编程是一项富有挑战性的体力和脑力运动,尤其在面对复杂计算问题和苛刻运算要求的情况下。
它要求编程者不仅具有规划全局的能力,还要具备处理细节的技术。
很多程序语言,例如CIC++等,包含了复杂的语法,掌握并灵活运用这些编程语言需要刻苦和深入的学习。
诚然,做任何事情需要认真与刻苦,但学习程序设计真的那么难吗?或许学习其他语言会非常困难,使相当部分人退缩。
但对于Python语言,本书将开启一个全新的程序设计学习历程。
这里没有大量枯燥的概念和语法,只有通过实例展示的程序设计的魅力和力蜇。
编写程序的过程可以获得很多快乐,它也是一项具有创造性、可以带来价值的活动。
它不仅能解决实实在在的问题,也提供了表现自我的平台。
1.3 P y thon语言1.3. 1 Python j什言概述Python语言诞生千1990年前后,由Guidovan Rossum设计并领导开发。
该语言以P y th o n命名源千Guido的兴趣。
也许P y th o n语言的诞生是个偶然,但20多年来的发展将这个偶然变成了计算机科学与技术发展过程中的一次标志性事件。
2000年10月,Pyt h on2. 0正式发布,标志若Pyt h on语言完成了自身涅梁,解决了其解释器和运行环境中的众多问题,开启了Pyt h on广泛应用的新时代。
至今,Pyt h on 2.0系列发布了最后一个稳定版本P yt h o n2. 7. 6,且不再更新。
2008年12月,Pyt h on3. 0正式发布,这个版本在语法层面和解释器内部做了很多修改。
很可惜,这个版本不能兼容Pyt h on2. 0系列的既有语法,因此,所有基千Pyt h on2.0系列版本编写的库函数都必须修改后才能被Pyt h on3. 0系列解释器运行。
Pyt h on3.0系列的版本号已经到3.4。
由于目前大部分Pyt h on库仍然更好地支待Pyt h on2. 0系列版本,本书也采用2.0系列版本作为示例平台。
随着整个Pyt h on社区对3.0系列版本的不断推动,不久将来,Pyt h on 3. 0系列的通用性将会有显著提升,并最终取代2.0系列版本。
这两个系列版本在大部分语法结构上保持一致,只有细节上的不同。
本书中大部分例子均可以在3.0系列版本中正确运行。
P y h o n语言是一个脚本语言,具有如下特点。
• P y h on语言通过强制缩进保证程序的可读性。
• Pyt h on程序不需要一个主函数,儿条语句的组合也可以运行。
·尽管Pyt h o n语言是脚本语言,但可以同时被解释和编译执行。
• Pyt h on语言很简洁,只有少拭的语法约束。
• P yt h on语言可以面向过程,也可以面向对象,支持灵活的编程模式。
本书后续章节将会一步步揭开Pyt h on语言的面纱,并带领读者采用这个语言解决一个个有趣又实用的问题。
本书后续章节的行文中除个别地方外将用“Pyt h o n"代替"Pyl h on语言”。
I.3. 2 使川Python语占编写Hello程序学习编程语言有一个惯例,即运行最简单的Hello程序,该程序功能是在屏幕上打印出“Hello Wor l d"。
这个程序虽小,但却是初学者接触语言的第一步。
使用Pyt h on编写的Hello程序只包含一行代码,如下:print "Hello World•上述代码中,print表示将后面引号中的信息输出到屏幕上。
该代码显示效果如下:>»print "Hello World"Hello World其中,第一行“>>>”是Python语言运行环境的提示符,表示可以在这个符号后面输入Pyt h on语句或者包含Pyt h on语句的文件。
第二行是Pyt h on语句的执行结果。
Pyt h on语言的Hello程序似乎与人类语言类似,通过一行语句就把打印的事情解决了。
其他语言的H e ll o程序并不这样简洁,下面是C语言的H e ll o程序,对比一下:#include< s七dio.h >int main (void)论一printf ("Hello World \n ");return O;其中include、int、main的具体含义就不具体介绍了。
上述C语言代码与之前的Pytho n 代码功能一样,也只是打印一个“HelloWorld"。