什么是程序?
程序是计算机完成某种任务时执行的一组指令。
程序通常被称为软件。
硬件和软件
构成计算机的物理设备称为计算机硬件。在计算机上运行的程序称为软件。
- 硬件是指构成计算机的所以物理设备或组件。
典型的计算机系统包括以下主要硬件:
介绍 | |
---|---|
中央处理器(CPU) | 运行程序的计算机部分 |
内存 | 计算机在程序运行时存储程序代码以及程序正在处理数据的地方 |
辅助存储设备 | 可以长时间保存数据的存储器,最常见的辅存设备是磁盘驱动器(硬盘) |
输入设备 | 收集数据并将其发送到计算机系统的部件,常见的有:键盘、鼠标、麦克风等 |
输出设备 | 常见的输出设备是视频显示器和打印机 |
- 现有软件分为两类:系统软件和应用软件
1.系统软件(控制和管理计算机基本操作的程序)
类型 | 介绍 |
---|---|
操作系统 | 操作系统是计算机上最基本的一组程序。操作系统控制计算机硬件的内部运行、管理连接到计算机的所有设备、允许从存储设备中保存或读取数据、允许其它程序在计算机上运行。例如用于笔记本电脑和台式电脑的流行操作系统如Windows、Mac OS、Linux;移动设备的流行操作系统如Android和iOS。 |
实用工具 | 实用工具执行专门的任务、辅助计算机的运行和保护数据。实用工具如病毒扫描程序、文件压缩程序和数据备份程序。 |
软件开发工具 | 软件开发工具是编程人员用来创建、修改和测试软件的程序。汇编程序、编译程序和解释程序都属于此类程序的范畴。 |
2.应用程序软件(使计算机处理日常工作的程序)
例如:Word(文字处理程序)、PowerPoint(演示文档程序)等。
计算机如何存储数据?
存储在计算机中的所有数据都被转换为0和1的序列。
计算机的内存被分成很小的呃存储单元,称为字节(byte)。
每个字节被分成八个较小的存储位置,每个存储位置称为位。(术语位代表二进制数)
-
存储数字
位可以用来表示数字。在计算机系统中,根据该位打开(1)还是关闭(0)可以表示不同值,这完全对应于二进制编码系统。
当一个字节中所有位的设置为0时,则该字节的值为0。当所有位都设置为1时,则该字节的值为255,也就是字节表示可以存储的最大值,这个限制的存在是因为一个字节只有8位。
如果需要存储大于255的数字,就可以使用多个字节存储。例如两个字节放在一起,就是16位,可以存储在两个字节中的最大值为65535。 -
存储字符
存储在计算机内存中的任何数据都必须作为二进制数存储(包括字母、标点这样的字符)。
当一个字符被存储在内存中时,它首先被转换为一个数字编码,再把数字编码转换成为二进制数存储在内存中。
ASCII(美国信息交换标准码)是一组128个的数字编码,用来表示英文字母、各种标点符号和其他字符。由于ASCII是有限的,后来开发了Unicode字符集(一种广泛的编码方案),与ASCII兼容,但也可以表示世界上许多语言的字符,Unicode正迅速成为计算机行业中使用的标准字符集。 -
高级数字存储
计算机使用编码方案和二进制编号系统也能将负数和实数存储在内存中。负数使用称为二进制补码的技术进行编码,实数使用浮点符号进行编码。 -
其他类型的数据
计算机通常被称为数字设备,所谓数字设备是可以与二进制数据一起一起工作的任何设备。
以二进制形式存储的数据(数字化数据)可以来描述任何东西。
例如:
图像由称为像素的小点组成,每个像素被转换为代表像素颜色的数字编码,数字编码作为二进制数存储在内存中。
音频可以被分为许多小块,称为样本,每个样本被转换成一个二进制数存储在内存中,被分为的样本越多,播放时的还原度越高。
程序如何工作?
计算机的CPU只能理解以机器语言编写的指令(机器语言指令总是二进制的)。因为人们发现直接使用机器语言编写整个程序非常困难,所以发明了其他编程语言。
CPU只是专门用于执行特定事情的电子设备。CPU被设计用于以下操作:
- 从主存中读取数据
- 两个数相加
- 两个数相减
- 两个数相乘
- 两个数相除
- 存储单元内数据迁移
- 判断两个数是否相等
一条机器语言指令代表CPU能够执行的一种操作,例如相加的指令、相减的指令等。
CPU可以执行的整套操作被称为CPU的指令集。
每个品牌的微处理器(CPU)都有自己独特的指令集,不同品牌的微处理器指令集一般不能通用。
程序存储在辅存(如硬盘)中,每次CPU执行时都必须将其复制到内存中。
当CPU执行一个程序中的指令时,进行一个读取-解析-执行的指令周期过程。
- 读取:读取程序(即一个机器语言指令构成的长队列)。指令周期的第一步是将下一条待执行指令从内存中读取到CPU中。
- 解析:机器语言指令是一个二进制数,表示一个执行CPU操作的命令。CPU解析刚刚从内存中取出的指令,以确定应该执行的操作。
- 执行:指令周期的最后一部是执行操作。
高级语言
20世纪50年代,开始出现称为高级语言的新一代编程语言。
高级语言允许编写功能强大且复杂的程序,而无须知道CPU如何工作,也无须编写大量的低级指令。
例如:C、C++、Java、Python等。
每个高级语言都有自己的一组预定一次,组成高级语言的词被称为关键字或保留字。
Python语言的关键字:
and | del | from | None | True |
---|---|---|---|---|
assert | else | if | not | while |
as | elif | global | nonlocol | try |
break | except | import | or | with |
class | False | in | pass | yield |
continue | finally | is | raise | |
def | for | lambda | return |
除了关键字,编程语言还有对数据执行各种操作的操作符以及语法。语法规则规定了程序中关键字、操作符和各种标点符号的使用方式。
高级语言中用于编写程序的单个指令称为语句。 一个编程语句由关键字、操作符特殊符号和其他编程元素组成,并按正确的顺序排列以执行操作。
编译器
编译器是将高级语言程序转换为独立机器语言程序的程序。
解释器
Python语言使用解释器,解释器是翻译并执行高级语言程序的特殊程序。
由于解释器将翻译和执行两个过程合并在一起完成,所以通常不会创建独立的机器语言程序。
高级语言编写的语句称为源代码,简称为代码。
如果代码包含语法错误,则不能翻译。
IDLE编程环境
集成开发环境(IDLE)是一个提供编写、执行和测试程序所需的所有工具的程序。
参考书籍:《Python程序设计基础》 [美] 托尼·加迪斯