第1章 编程与Python
自从计算机诞生之日起,编程就是计算机相关工作的一部分,如今编程不再只是与计算机有关的工作,它已经渗透到社会生成的各个领域中去了,不管你是否从事IT行业,懂得点编程也是工作和生活的需要之一。那么,什么是编程呢?
如今的编程语言可以说是五花八门、百花齐放,发展至今已经有几十种计算机语言。从最初的机器语言,到今天的高级语言,让你选择的话,可能会无所适从。
Python语言是一种开放源代码的、免费的跨平台语言,它既具有当今高级语言所具有的面向对象等特性,又具有清晰的结构、简洁的语法。Python语言自身带有丰富而实用的标准库,还拥有大量的第三方开源库,能够应付各种场合。Python语言可以使用C/C++进行扩展,也可以嵌入到其他语言之中。所以,本书推荐的是Python。
本章内容包括:
编程预备知识;
Python语言特点;
安装Python工作环境;
Python语言开发工具介绍;
建立和运行Python程序.
1.1什么是编程
简单地说,编程就是安排计算机解决某个问题的方法、步骤。但要详细了解
编程还需要你了解计算机的相关知识
1.1.1 硬件与软件
计算机硬件是计算机中你能够触及到的部分,换句话说就是你能踢它一脚的东西。从信息处理的角度来看计算机,其结构如图1.1所示。
如图1.1所示,信息由外部世界经由输入设备进入计算机,然后在主机(CPU和内存)内进行处理,最后通过输出设备把信息处理的结果送出。在这个过程中,这些输入和输出设备根据信息的不同特点而表现不同,比如要输入字符,可以通过键盘进行录入。
最常见的输入设备就是键盘和鼠标,它是用户向计算机输入信息的主要设备,因此你所看到的计算机,几乎全都带有这两种设备。
输出设备对于计算机来说,也很重要。计算机只有具有了输出设备,人类才能了解它的运行状态,获取信息处理的结果,而不同的输出设备以不同的形式输出信息处理结果。最常用的输出设备就是以图文形式输出信息的显示器和打印机,当然还包括音箱、绘图仪等。
计算机的本质是信息处理机,要处理信息就必须具备处理信息的硬件设备。类似于人的大脑,要处理信息就要有运算能力和存储能力。计算机主机中的CPU(包括运算器和控制器)就具有运算能力及控制能力;存储器就具有存储能力。
对于计算机来说,由其自身特点决定了它的信息处理和信息存储的形式,即使用二进制代码(只有0和1)来表示所有的信息。外界所有的信息要进入计算机,都必须千方百计地转换为二进制代码,这些信息有文字、图片、声音、视频等各种形式。
计算机在进行信息处理时,必须能够按照人们的要求,通过一定的方式、方法或者步骤来进行。要实现这个目标,总不能每做一步都由人临时控制,因此,计算机就必须通过软件(程序)来进行控制。计算机输入信息、处理信息和输出信息都必须通过软件来进行控制。
由计算机硬件概念可推知,计算机软件是指你不能触及的部分,它实际上是对计算机进行控制的方式或步骤的描述。
计算机要想完成某个任务,就要知道完成这个任务所需的人为指定的步骤或方法。对于某个特定的问题,人们通过给定的指令序列来进行方法或步骤的描述,而这里的指令序列本质上应该是CPU指令的序列,也就是程序。
此外,要解决某一问题总是有一定方法的,这个方法的具体实现方式被称之为算法。就像解一道数学应用题,既可以使用列综合算式方法来完成,也可以通过列方程的方法来完成,而这些不同的算法最后达成的目标是相同的。
很显然,计算机能够运行的前提是必须同时具有硬件和软件。硬件是一切工作的基础,也是计算机赖以存在的物质基础;而软件是硬件工作必不可少的控制者。同时具有硬件系统和软件系统才能构成一个完整的计算机系统。
1.1.2 编程语言
编程语言在计算机诞生的那一天起就存在了,那个时候,人类自然会想到用计算机表示信息的方式(二进制代码0和1)来描述对计算机的控制程序,这就是机器语言,它同时也是这台计算机CPU的内建命令集。由此也可以看出,机器语言其实就是人类用计算机本身的语言来完成对计算机的控制的,要想控制计算机,人类就要学会机器所使用的机器语言(用0和1描述)。
当然,可想而知:用一长串0和1来写程序控制计算机的话,效率肯定很低,既不容易理解,又很容易搞错。此外,不同类型的计算机其机器语言也不同,也就是说即使是为了解决同样的问题,在不同的计算机中,程序也不相同。
要想解决机器语言难学、易错的问题,第一步是不用0和1来写程序,因为那太难记、难写,又很容易被错写。那就用单词来代替命令代码(一串0、1),因此诞生了汇编语言,汇编语言不是采用二进制代码来描述解决问题的步骤,而计算机只能识别二进制代码,所以运行时要先翻译为二进制代码的机器语言(专业术语叫编译),然后计算机才能识别和执行。
汇编语言虽然解决了易错、难记的问题,但还是离人类的语言太遥远了,如果能像对一个人说话一样来写程序那就最好了。可是计算机毕竟是机器,要实现这个目标还有很长的一段路要走。人们就使用了能够较为准确描述算法步骤的接近于人类语言和数学表示方法的形式来作为写程序的语言,即现代常用的编程语言——高级语言。常见的高级语言有Python、C、Java、Perl、Erlang、LISP等。