1.1 从计算机到编程
冯·诺依曼体系:计算机采用二进制运算,包括控制器、 运算器、存储器、输入设备和输出设备五个部分,如图1-1所示。五个部分相互配合,执行特定的操作,即指令。
- 控制器:计算机的指挥部,管理计算机其他部分的工作,决定执行指令的顺 序,控制不同部件之间的数据交流。
- 运算器:计算机中进行运算的部件。除加减乘除之类的算数运算外,还能进行与、或、非之类的逻辑运算。运算器与控制器一起构成了中央处理器(CPU,Central Processing Unit)。
- 存储器:存储信息的部件。记录数据与所要执行的程序。
- 输入设备:向计算机输入信息的设备,如键盘、鼠标、摄像头等。
- 输出设备:计算机向外输出信息的设备,如显示屏、打印机、音响等。
操作系统:是运行在计算机上的一套软件,负责管理计算机的软硬件资源。
- 操作系统提供了一套系统调用(System Call),如图1-2所示,规定了操作系统支持哪些操作。当调用某个系统调用时,计算机会执行对应的操作。
- 系统调用提供的功能非常基础,有时调用起来很麻烦。操作系统因此定义一些库函数(Library Routine), 将系统调用组合成特定的功能。
1.2 所谓的编程,是做什么的
封装代码:把执行特殊功能的指令打包成一个程序块,然后给这个程序块起个容易查询的名字。如果需要重复使用这个程序块,则可以简单地通过名字调用。会消耗计算机资源。
编程范式:根据封装代码的不同方式,写程序时要遵循的特定编程风格。
- 面向过程(C语言)
- 面向对象(Java语言)
- 面向函数(Lisp语言)
任何一种编程范式编写出来的程序,最终都会翻译成上面所述的简单功能组合。所以编程的需求总是可以通过多种编程范式来分别实现,区别只在于这个范式的方便程度而已。由于不同的范式各有利弊,所以现代不少编程语言都支持多种编程范式,以便程序员在使用时取舍。
1.3 为什么学python
(20世纪80年代)
C语言:编写过程需要耗费大量时间,且高级特征容易让电脑瘫痪。
ABC语言:具备良好的可读性和易用性,但存在需要高配置电脑、可拓展性差、不能直接进行输入输出、过度革新、传播困难等问题。
Python:很多语法来自C,但又受到ABC语言的影响。
- 更易读性:用缩进代替花括号。
- 实用性:沿袭其他语言的语法惯例。
- 可拓展型:可以引入其他人编写的 Python文件拓展功能。可以直接引入C和C++语言编译出的库。
1.4 最简单的Hello World
运行python的方式:
- 命令行:尝试少量程序,立即看见结果。在cmd里输入python进入,显示提示符>>>。
- 编辑器:创建和编写一个后缀为.py的程序文件。适用于编写和保存量比较大的程序。
print()函数:在屏幕上打出字符。用双/单引号标记出普通字符以免计算机混淆。打印多个变量时用逗号隔开。
注释:一些用来解释某一段程序的文字,也方便其他程序员了解这段程序。注释的内容并不会被当作程序执行。
- 单行注释:用#开头。
- 多行注释:用两组三个双/单引号。
代码地址:https://gitee.com/sibyltui/learn_programming_from_python