第1章 概述

3 阅读10分钟

第1章 概述

1.1 计算机的组成

1.1.1 什么是计算机

计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。

--百度百科【计算机】

1.1.2 硬件

硬件(英文名Hardware),计算机硬件是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。这些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。

--百度百科【硬件】

计算机由运算器、控制器、存储器、输入设备和输出设备等五个逻辑部件组成:

(1)运算器

运算器由算术逻辑单元(ALU)、累加器、状态寄存器、通用寄存器组等组成。算术逻辑运算单元(ALU)的基本功能为加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、求补等操作。

(2)控制器

控制器(Control Unit),是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。

(3)中央处理器

中央处理器(Central Processing Unit,CPU),由运算器和控制器组成,是任何计算机系统中必备的核心部件。CPU 由运算器和控制器组成,分别由运算电路和控制电路实现。

(4)存储器

存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才能保证正常工作。

(5)输入设备

向计算机输入数据和信息的设备。是计算机与用户或其他设备通信的桥梁。输入设备是用户和计算机系统之间进行信息交换的主要装置之一。

(6)输出设备

输出设备(Output Device)是计算机的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表示出来。

1.1.3 软件

软件(英文:Software)是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。

--百度百科【软件】

(1)系统软件

系统软件是各类操作系统,如 Dos、Windows、Linux、UNIX、Mac、Android、iOS 等,还包括操作系统的补丁程序及硬件驱动程序,都是系统软件类。

(2)应用软件

应用软件可以细分的种类就更多了,如 QQ、酷我、暴风、微信软件等都属于应用软件类。

1.2 程序和编程语言

当我们要让计算机帮我们解决问题时,就需要编写程序。

程序是一组计算机能识别和执行的指令,这些指令由数字、字符和语法规则组成,它通常是用某种计算机编程语言编写的。

计算机编程语言,便是我们与计算机沟通的工具,就像我们交流使用的语言一样,只不过是人与计算机之间通讯的语言。

计算机只能执行二进制代码,程序设计语言一般类似英文,想要让计算机理解你写的程序,必须把程序代码"翻译"成计算机能理解的二进制代码,根据翻译形式的不同,可以分为:

  • 编译:将程序代码翻译成计算机能理解的二进制目标代码,会生成特定的可执行代码(在 Windows 上是 exe 文件),可执行代码是二进制的,无法看到源码。然后执行可执行代码就可以得到结果,如 C 语言、C++ 等。
  • 解释:将程序代码一句一句翻译为计算机可以执行的指令,立即执行,不会生成可执行文件,如 Python、PHP、JavaScript 等。

1.3 计算机语言简史

1.3.1 第一代:机器语言

1946 年 2 月 14 日,世界上第一台计算机 ENIAC 诞生,使用的是最原始的穿孔卡片。这种卡片上使用的是二进制代码表示的语言,与人类语言差别极大,这种语言就称为机器语言。比如一段典型的机器码:

0000,0000,000000010000 代表 LOAD A, 16
0000,0001,000000000001 代表 LOAD B, 1
0001,0001,000000010000 代表 STORE B, 16

1.3.2 第二代:汇编语言

使用英文缩写的助记符来表示基本的操作,比如:LOAD、MOVE 等,使人更容易使用,这些助记符构成了汇编语言的基础。因此,汇编语言也称为符号语言。

  • 优点:能编写高效率的程序。
  • 缺点:汇编语言是面向机器的,不同计算机会有不同的汇编语言,程序不易移植。

1.3.3 第三代:高级语言

高级语言,是一种接近于人类使用习惯的程序设计语言,它允许程序员使用接近日常英语的指令来编写程序,程序中的符号和算式也与日常用的数学算式差不多,接近于自然语言和数学语言,容易被人们掌握。

高级语言独立于计算机硬件,有一定的通用性;计算机不能直接识别和执行用高级语言编写的程序,需要使用编译器或者解释器,将高级语言转换为机器语言才能被识别和执行。

常见的高级语言有 Fortran、ALGOL、Basic、COBOL、LISP、Pascal、PROLOG、C、C++、VB、Delphi、Java、PHP、JavaScript、Python 等,我们主要学习的是 Python

TIOBE 编程语言排行榜:www.tiobe.com/tiobe-index…

1.4 为什么学习Python

1.4.1 Python 起源

Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一门优雅而健壮的编程语言。

作者是荷兰人 Guido van Rossum(吉多·范罗苏姆),1982 年从阿姆斯特丹大学获得了数学和计算机硕士学位。

在那时,Guido 接触并使用过诸如 Pascal、C、Fortran 等语言。这些语言的基本设计原则是让机器能更快运行。Guido 希望有一种语言既能像 C 语言那样全面调用计算机的功能接口,又可以像 shell 那样轻松的编程。

1989 年,为了打发无聊的圣诞节假期,Guido 开始编写 Python 语言的编译器。Python 这个名字,来自 Guido 所挚爱的电视剧 Monty Python's Flying Circus(飞行马戏团)。他希望这个新的叫做 Python 的语言,能符合他的理想:创造一种 C 和 shell 之间,功能全面,易学易用,可拓展的语言。

Python 的设计哲学是"优雅"、"明确"、"简单"。

Python 第一个公开发行版发行于 1991 年。

1.4.2 Python 能做什么

Python 功能强大,应用面广,主要应用场景如下:

  • Web 应用开发:拥有 Django、Flask 等丰富的 Web 开发框架,能够快速完成网站的开发和 Web 服务。
  • 网络爬虫:可按照一定规则自动抓取互联网信息,用于爬取图片、数据等。
  • 系统网络运维:适合将运维工作中的大量重复性工作自动化。
  • 数据分析与科学计算:广泛应用于科学与数字分析,常用 Numpy、Scipy 等库。
  • 人工智能与机器学习:是人工智能的主要开发语言,拥有 TensorFlow、Keras 等众多相关库。
  • 办公自动化:可用于处理 PPT 文件、图片处理、文件备份、系统监控等。
  • 金融分析与量化交易:可高效处理大量金融数据,开发量化交易模型。
  • 3D 游戏开发:有 Pygame、Pykyra 等很好的 3D 渲染库和游戏开发框架。
  • 桌面 GUI 应用:Tkinter 库可用于设计用户界面,PyQt、Kivy 等工具包有助于跨平台设计 UI 应用。
  • 教育领域:作为一种对初学者友好的编程语言,常被用于开发教育程序和在线课程。

1.4.3 Python 特点

1)Python 优点

  1. 易于学习:Python 有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
  2. 广泛的标准库:Python 拥有一个强大的标准库,提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML 处理等额外的功能。
  3. 大量的第三方模块:Python 社区提供了大量的第三方模块,功能覆盖科学计算、人工智能、机器学习、Web 开发、数据库接口、图形系统等多个领域。
  4. 互动模式:可以从终端输入执行代码并立即获得结果。
  5. 可移植:基于其开放源代码的特性,Python 已经被移植到许多平台。
  6. 可扩展:如果需要一段运行很快的关键代码,可以使用 C 或 C++ 完成那部分程序,然后从 Python 程序中调用。
  7. 免费、开源

2)Python 缺点

  1. 运行速度慢:和 C 程序相比非常慢,因为 Python 是解释型语言,代码在执行时会一行一行地翻译成 CPU 能理解的机器码,这个翻译过程非常耗时。
  2. 代码不能加密:如果要发布 Python 程序,实际上就是发布源代码,而解释型的语言则必须把源码发布出去。

1.5 Python 版本

Python 有 2 个版本,Python2 和 Python3。

  • 2020 年 1 月 1 日,官方宣布停止 Python 2 的更新,Python 2.7 被确定为最后一个 Python 2.x 版本。
  • Python 3.x 是现在和未来主流的版本。Python 3.0 在设计的时候没有考虑向下兼容。
  • Python 3.0 发布于 2008 年。
  • Python 3.13.1 发布于 2024 年 12 月。
  • 当前课程使用的版本是 Python 3.12.8

1.6 Python 解释器

当我们编写 Python 代码时,我们得到的是一个包含 Python 代码的以 .py 为扩展名的文本文件。要运行代码,就需要 Python 解释器去执行 .py 文件。

常见的 Python 解释器有:

  • CPython:从 Python 官方网站下载并安装好 Python 3.x 后,我们就直接获得了一个官方版本的解释器 CPython。这个解释器是用 C 语言开发的,是使用最广的 Python 解释器。
  • IPython:基于 CPython 之上的一个交互式解释器,在交互方式上有所增强。CPython 用 >>> 作为提示符,而 IPython 用 In [序号]: 作为提示符。
  • PyPy:另一个 Python 解释器,它的目标是执行速度。PyPy 采用 JIT 技术,对 Python 代码进行动态编译,可以显著提高 Python 代码的执行速度。
  • Jython:运行在 Java 平台上的 Python 解释器,可以直接把 Python 代码编译成 Java 字节码执行。
  • IronPython:运行在微软 .Net 平台上的 Python 解释器,可以直接把 Python 代码编译成 .Net 的字节码。

小结:Python 的解释器很多,但使用最广泛的还是 CPython。如果要和 Java 或 .Net 平台交互,最好的办法不是用 Jython 或 IronPython,而是通过网络调用来交互,确保各程序之间的独立性。