ONE DAY
一、计算机介绍
1.1、计算机发展
根据计算机所采用的物理器件的发展,一般把电子计算机的发展分成四个阶段。
-
电子管计算机时代
-
晶体管计算机时代
-
集成电路计算机时代
-
大规模集成电路计算机时代
世界上第一台通用计算机ENIAC
于1946年2月14日在美国宾夕法尼亚大学诞生。发明人是美国人莫克利(JohnW.Mauchly
)和艾克特(J.PresperEckert
)。它是一个庞然大物,用了18000个电子管,占地170平方米,重达30吨,耗电功率约150千瓦,每秒钟可进行5000次运算,这在现在看来微不足道,但在当时却是破天荒的。 ENIAC
以电子管作为元器件,所以又被称为电子管计算机,是计算机的第一代。电子管计算机由于使用的电子管体积很大,耗电量大,易发热,因而工作的时间不能太长。
ENIAC
奠定了电脑的发展基础,开辟了计算机科学技术的新纪元,有人将其称为人类第三次产业革命开始的标志。
从50年代中期到60年代后期,采用的主要器件逐步由电子管改为晶体管,缩小了体积,降低了功耗,提高了速度和可靠性,降低了价格。从60年代中期到70年代前期,计算机采用集成电路作为基本器件,功耗、体积、价格进一步下降,速度和可靠性相应的提高。70年代初,半导体存储器问世,迅速取代了磁芯存储器,并不断向大容量、高速度发展,计算机正式进入大规模集成电路时代。
1.2、计算机硬件组成
(1)计算机主要硬件组成部分
1、电源:它属于供电设备,它可以将计算机内的交流电转换成直流电,电源硬件的质量决定着其它硬件的工作稳定性,进而会影响整个计算机的使用稳定性。
2、主板:属于计算机的硬件工作平台,它可以将计算机内所有的部件全部连接在一起,从而进行数据传输的作用。
3、cpu:它属于计算机的中央处理器,它拥有控制核心以及运算核心的作用。cpu可以高速缓存、寄存、控制、运算,因此有着最高的执行作用。许多人选购计算机的时候,都会首先检查该计算机的cpu性能好坏,因为它可以决定计算机的档次高低。
4、内部存储器:它便是我们已知的内存,内存又氛围sdram内存与ddr内存,它的促成部分为芯片与 电路板 ,体积小,但是运行速度很快,在 电脑开机 的时候,它可以帮助我们存储各种数据,例如说缓存数据、下载数据等等。
5、硬盘:我们可以称它为外部存储硬件,它拥有记忆功能,可以存储大量的数据,尺寸有1英寸、3.5英寸、1.8英寸等等,在市场上有许多移动硬盘的售卖,价格都在百元之上。
6、声卡:声卡的作用便是可以发出“播放”的命令,它可以将计算机内部的声音数字信号全部变成模拟信号,然后发送到外部的音箱上,进而发出声音。
7、显卡:在使用计算机的时候,显卡可以输出文字、图形,它最大的作用便是将需要显示的所有信息全部转换成驱动扫描信号,它可是 显示器 与电脑主板之间最重要的硬件之一了。
- CPU
其中,CPU包括运算器和控制器,相当于计算机的大脑,是计算机的运算核心和控制核心。
(1) 运算器是用来进行数据运算加工的。运算器的主要部件:
(1)数据缓冲器:分为输入缓冲和输出缓冲,输入缓冲暂时存放外设送过来的数据,输出缓冲暂时存放送往外设的数据.
(2)ALU(算数逻辑单元):是运算器的主要部件,能完成常见的位运算(左移,右移,与,或非等)和算术运算(加减乘除等).
(3)状态字寄存器:存放运算状态(条件码,进位,溢出,结果正负等)和运算控制信息.
(4)通用寄存器:暂时存放或传送数据或指令,保存ALU的运算中间结果.
(2) 控制器是是计算机的指挥中心,负责决定执行程序的顺序,给出执行指令时机器各部件所需要的操作控制命令,用于协调和控制计算机的运行。控制器的主要部件:
(1)程序计数器(Program Counter):简称PC,用来存储从内存提取的下一条指令的地址.当CPU执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为"取指令".与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址,此后经过分析指令,执行指令,完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令,保证程序能够连续地执行下去.
(2)时序发生器:用于发送时序脉冲,CPU依据不同的时序脉冲有节奏地进行工作,类似于CPU的节拍器.
(3)指令编译器:用于翻译指令及控制传输指令包含的数据.
(4)指令寄存器:用于缓存从内存或高速缓存里取出的指令,CPU执行指令时,就可以从指令寄存器中取出相关指令来进行执行.
(5)主存地址寄存器:保存当前CPU正要访问的内存单元的地址,通过总线跟主存通信.
(6)主存数据寄存器:保存当前CPU正要读或写的主存数据,通过总线与主存通信.
(7)通用寄存器:用于暂时存放或传送数据或指令.
- 存储器
储存器可分为内储存器和外储存器两部分:内存属于内储存器,内存是CPU与硬盘之间的桥梁,只负责在CPU与硬盘之间做数据预存加速的功能。断电后即会被清除。输入设备的数据是从设备接口进去到端口缓冲器的,再经主板的输入输出总线(I/O总线)直接到CPU的,不经过内存。
外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外存储器有硬盘、软盘、光盘、U盘等。
- 输入输出设备
输入设备就是键盘、鼠标、麦克风、扫描仪等等,向电脑输入信息。输入设备则相反,电脑向外部输出信息,如显示器、打印、音像、写入外存等。
1.3、冯-诺伊曼计算机
提到计算机,就不得不提及在计算机的发展史上做出杰出贡献的著名应用数学家冯诺依曼(Von Neumann,是他带领专家提出了一个全新的存储程序的通用电子计算机方案。这个方案规定了新机器由5个部分组成:运算器、逻辑控制装置、存储器、输入和输出。并描述了这5个部分的职能和相互关系。 这个方案与早期的ENIAC
相比,有两个重大改进:一是采用二进制;二是提出了“存储程序”的设计思想,即用记忆数据的同一装置存储执行运算的命令,使程序的执行可以自动地从一条指令进入下一条指令。 这个概念被誉为计算机史.上的一个里程碑。计算机的存储程序和程序控制原理因此称为冯诺依曼原理,即可编程、可存储的计算机。按照上述原理设计制造的计算机称为冯诺依曼机。
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu
、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。
如果说主板(Mother Board)是一座城市,那么总线就像是城市里的公共汽车(bus),能按照固定行车路线,传输来回不停运作的比特(bit)。一条线路在同一时间内都仅能负责传输一个比特。因此,必须同时采用多条线路才能传送更多数据,而总线可同时传输的数据数就称为宽度(width),以比特为单位,总线宽度愈大,传输性能就愈佳。
二、编程语言介绍
2.1、什么是编程语言
编程语言是用来控制计算机的一系列指令(Instruction),它有固定的格式和词汇(不同编程语言的格式和词汇不一样)。就像我们中国人之间沟通需要汉语,英国人沟通需要英语一样,人与计算机之间进行沟通需要一门语言作为介质,即编程语言。
编程语言的发展经历了机器语言(指令系统)=>汇编语言=>高级语言(C、java、Go
等)。
2.2、编译型语言与解释性语言
计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。而这种转换的方式分为编译和解释两种。由此高级语言也分为编译型语言和解释型语言。
使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。
编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件,如exe
格式的文件,以后要再运行时,直接使用编译结果即可,如直接运行exe
文件。因为只需编译一次,以后运行时不需要编译,所以编译型语言执行效率高。
例如:C、C++、Delphi等.
1、一次性的编译成平台相关的机器语言文件,运行时脱离开发环境,运行效率高;
2、与特定平台相关,一般无法移植到其他平台;
使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。是代码在执行时才被解释器一行行动态翻译和执行,而不是在执行之前就完成翻译。
例如:js,php,MATLAB,java和javascript。
1.解释型语言每次运行都需要将源代码解释称机器码并执行,执行效率低;
2.只要平台提供相应的解释器,就可以运行源代码,所以可以方便源程序移植;
三、Python语言介绍
3.1、了解Python语言
- 计算机在设计中规定了一组指令(二级制代码),这组指令的集和就是所谓的机器指令系统,用机器指令形式编写的程序称为机器语言。
- 但由于机器语言的千上万条指令难以记忆,并且维护性和移植性都很差,所以在机器语言的
- 基础上,人们提出了采用字符和十进制数代替二进制代码,于是产生了将机器语言符号化的汇编语言。
- 虽然汇编语言相较于机器语言简单了很多,但是汇编语言是机器指令的符号化,与机器指令存在着直接的对应关系,无论是学习还是开发,难度依然很大。所以更加接近人类语言,也更容易理解和修改的高级语言就应运而生了,高级语言的一条语法往往可以代替几条、几十条甚至几百条汇编语言的指令。因此,高级语言易学易用,通用性强,应用广泛。
- 编译型语言
- 解释型语言
Python 是1989 年荷兰人 Guido van Rossum (简称 Guido)在圣诞节期间为了打发时间,发明的一门面向对象的解释性编程语言。Python来自Guido所挚爱的电视剧Monty Python’s Flying Circus。
Guido对于Python的设计理念就是一门介于shell和C之间的语言。可以像shell那样,轻松高效编程,也可以像C语言那样,能够全面调用计算机的功能接口。
python的设计哲学:优雅、明确、简洁。
Python 的两大特色是清晰的语法和可扩展性:
- Python 的语法非常清晰,它甚至不是一种格式自由的语言。例如,它要求 if 语句的下一行必须向右缩进,否则不能通过编译。
- Python 的可扩展性体现为它的模块,Python 具有脚本语言中最丰富和强大的类库(这些类库被形象地称为“batteries included ,内置电池”),这些类库覆盖了文件 I/O、GUI、网络编程、数据库访问、文本操作等绝大部分应用场景。
此外,Python 的社区也很发达,即使一些小众的应用场景,Python 往往也有对应的开源模块来提供解决方案。
Python 作为一门解释型的语言,它天生具有跨平台的特征,只要为平台提供了相应的 Python 解释器,Python 就可以在该平台上运行。
【解释型语言几乎天然是跨平台的。】
Python 自然也具有解释型语言的一些弱点:
- 速度慢:Python 程序比 Java、C、C++ 等程序的运行效率都要慢。
- 源代码加密困难:不像编译型语言的源程序会被编译成目标程序,Python 直接运行源程序,因此对源代码加密比较困难。
Python版本发展史
- 1989年,被称为龟叔的Guido在为ABC语言写插件时,产生了写一个简洁又实用的编程语言的想法,并开始着手编写。因为其喜欢Monty Python喜剧团,所以将其命名为python,中文意思是蟒蛇;
- 1990年,发布了python的第一个版本;
- 2001年,发布了python 2.x版本,版本更新至2.7,2.x内不再更新2.7以上版本;
- 2013年,发布了python 3.0版本。