200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Python基础——计算机组成原理 操作系统概述 编程语言的由来 编程语言分类 python

Python基础——计算机组成原理 操作系统概述 编程语言的由来 编程语言分类 python

时间:2023-11-01 15:41:07

相关推荐

Python基础——计算机组成原理 操作系统概述 编程语言的由来 编程语言分类 python

文章目录

一 引子:1.1 什么是语言?什么是编程语言?为何要有编程语言?1.2 什么是编程?为什么要编程? 二 计算机组成原理2.1、什么是计算机?2.2、为什么要用计算机?2.3、计算机的五大组成部分2.3.1、控制器2.3.2、运算器2.3.3、存储器2.3.4、输入设备input2.3.5、输出设备output一个非常重要的基础知识:与运行程序相关的三大核心硬件 三 操作系统概述3.1、操作系统的由来3.2、系统软件与应用软件3.3、计算机系统三层结构一个非常重要的基础概念:平台 一 编程语言与python介绍二 编程语言分类:2.1 机器语言2.2 汇编语言2.3 高级语言2.3.1 编译型(如C语言):2.3.2 解释型(如python): 2.4 总结 三 python介绍3.1 Python解释器的发展史3.2 Python解释器有哪些种类? 四 安装Cpython解释器4.1、下载python解释器4.2、安装python解释器4.3、测试安装是否成功 五 第一个python程序5.1 运行python程序有两种方式5.2 注释 六 IDE工具pycharm的使用6.1、什么是IDE?为何要有IDE6.2、pychram安装6.3、Pycharm创建文件夹6.4、如何创建文件并编写程序执行

一 引子:

接下来一段时间,我们的目标的是:学会使用python这门编程语言来编写ATM+购物车程序,那么问题来了:

1.1 什么是语言?什么是编程语言?为何要有编程语言?

语言其实就是人与人之间沟通的介质,如英语,汉语,俄语等。

而编程语言则是人与计算机之间沟通的介质。

那么为何要有编程语言,或者说人为何要与计算机沟通呢?这是因为在编程的世界里,计算机就好比是人的奴隶,人与计算机沟通的目的就是为了奴役计算机,让计算机按照人类的思维逻辑自发地去工作从而把人力解放出来。

此处我们可以提炼出如下两个重要的概念

1.2 什么是编程?为什么要编程?

编程就是人把自己想命令计算机干的事用编程语言翻译出来并写到文件里(这一系列的文件就是程序),那么为什么要编程?

小人类编程的目的就是为了让计算机按照人类的思维逻辑(程序)自发地去工作从而把人力解放出来。

综上,我们接下来的学习应该分为两个层面

1、为了更好地控制人类的奴隶(即计算机),我们需要学习计算机是由什么组成的、它能做什么事、它是怎样工作的(详见计算机组成原理、操作系统概述)

2、我们需要学习编程语言,从而把原来需要人力来完成的业务(比如ATM和购物)交给计算机去做

二 计算机组成原理

2.1、什么是计算机?

俗称电脑,即通电的大脑,电脑二字蕴含了人类对计算机的终极期望,希望它能真的像人脑一样去工作,从而解放人力。

2.2、为什么要用计算机?

世界是由聪明的懒人统治的,任何时期,总有一群聪明的懒人想要奴隶别人。在奴隶制社会,聪明的懒人奴役的是真正的人,而人是无法不吃、不喝、不睡觉一直工作的,但是计算机作为一台机器是可以做到的,所以把计算机当奴隶是上上之选。

2.3、计算机的五大组成部分

计算机有五大组成部分,既然计算机是人的奴隶,那么计算机设计核心肯定也是在模仿真正的人,所以我们完全可以把计算机的五大组件比喻成人类的各种器官

2.3.1、控制器

控制器是计算机的指挥系统,用来控制计算机其他组件的运行,相当于人类的大脑

2.3.2、运算器

运算器是计算机的运算功能,用来做算术运算和逻辑运算,相当于人脑。

ps:控制器+运算器=CPU,cpu相当于人的大脑

cpu详解见 /m0_67155975/article/details/123058147

2.3.3、存储器

存储器是计算机的记忆功能,用来存取数据。

存储器主要分为内存与外存:

​ 内存相当于人的短期记忆。断电数据丢失

​ 外存(如磁盘),相当于记事的本子,断电数据不会丢失,是用来永久保存数据的

​ ps:内存的存取速度要远远高于外存

2.3.4、输入设备input

输入设备是计算接收外界输入数据的工具,如键盘、鼠标,相当于人的眼睛或耳朵。

2.3.5、输出设备output

输出设备是计算机向外输出数据的工具,如显示器、打印机,相当于人说的话,写出的文章。

ps:存储器如内存、磁盘等既是输入设备又是输出设备,统称为IO设备

一个非常重要的基础知识:与运行程序相关的三大核心硬件

我们编写的程序一定是要运行于计算机硬件之上,而站在硬件的角度,与运行程序有关的三大核心硬件为CPU、内存、硬盘。

程序最先是存放于硬盘中的,程序的运行是先从硬盘把代码加载到内存中,然后cpu是从内存中读取指令运行。

三 操作系统概述

3.1、操作系统的由来

​ 大前提:我们编程目的就是为了奴役计算机,让计算机硬件自发地运行起来,然而硬件毕竟是”死的“,硬件的运行都是由软件支配。

​ 倘若我们要开发一个应用程序,比如暴风音影,该软件的一个核心业务就是播放视频,开发者若要编写程序完成播放视频这个业务逻辑,必先涉及到底层硬件硬盘的基本运作(视频文件都是先存放于硬盘中),这意味着开发者在编写业务逻辑代码之前,必须先编写一个控制硬盘基本运行的控制程序,然而这仅仅只是一个开始,事实上,在编写应用程序的业务逻辑前,需要开发者编写出一套完整的控制程序用来控制所有硬件的基本运行(这要求开发者需要详细了解计算机硬件的各种控制细节,例如我们必须把CPU里面所有指令集都掌握一遍),如此,所有的开发者在开发程序时都必须依次开发两种:

#1、编写一套完整的的控制程序,用来控制硬件的基本运行,以及把复杂的硬件的操作封装成简单的接口#2、基于控制程序的接口开发包含一系列业务逻辑的程序,为了与控制程序区分,可以称为应用程序,以ATM这款应用程序为例,业务逻辑有提款、转账、查询余额等

​ 综上,对于不同公司的开发者来说,应用程序的业务逻辑各不相同,但硬件的控制程序都大致相同,为了避免所有程序员做重复劳动,以及不用再耗费精力去了解所有硬件的运行细节,有公司专门跳出来承担起控制程序的开发任务,这里所说的控制程序指的就是操作系统。

​ 操作系统的功能就是帮我们把复杂的硬件的控制封装成简单的接口,对于开发应用程序来说只需要调用操作系统提供给我们的接口即可

3.2、系统软件与应用软件

硬件以上运行的都是软件,而软件分为两类:

#一、应用软件(例如qq、word、暴风影音,我们学习python就是为了开发应用软件的)#二、操作系统,操作系统应用软件与硬件之间的一个桥梁,是协调、管理、控制计算机硬件与应用软件资源的控制程序。

3.3、计算机系统三层结构

综上,我们开发应用程序本质是在控制硬件,但是我们直接打交道的是操作系统,应用程序都是通过操作系统来间接地操作硬件的,所以一套完整的计算机系统分为三层,如下

一个非常重要的基础概念:平台

应用程序都是运行于操作系统之上,而操作系统则是运行于硬件之上的,所以承载应用程序的是一台运行有操作系统的计算机,称之为应用程序的运行平台,即:硬件 + 操作系统 == 平台

常见的平台有:windows系统+某款硬件、linux系统+某款硬件、ubuntu+某款硬件等,我们在开发应用程序时就需要考虑到应用程序的跨平台性,如果能开发出一款可以在任意平台运行的应用程序,那对于开发者来说真是极大的福音。而决定应用软件的跨平台性的关键因素往往是编程语言的选择,python恰好是一款跨平台性语言,这也是我们学习它的原因之一。

一 编程语言与python介绍

​ 基于上一章所学,有了计算机硬件,再在硬件之上安装好操作系统,我们就有了一个应用程序的运行平台,我们接下来的任务就是学习如何使用某款编程语言来开发应用程序。

​ 本章的主题是先带大家了解下编程语言,然后重点介绍python这门编程语言

二 编程语言分类:

2.1 机器语言

机器语言是站在计算机(奴隶)的角度,说计算机能听懂/理解的语言,而计算机能直接理解的就是二进制指令,所以机器语言就是直接用二进制编程,这意味着机器语言是直接操作硬件的,因此机器语言属于低级语言,此处的低级指的是底层、贴近计算机硬件(贴近代指需要详细了解计算机硬件细节、直接控制硬件),详解如下

#机器语言用二进制代码0和1描述的指令称为机器指令,由于计算机内部是基于二进制指令工作的,所以机器语言是直接控制计算机硬件。用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码以及代码的含义,然后在编写程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,不便阅读和书写,还容易出错,且依赖于具体的计算机硬件型号,局限性很大。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。机器语言是被微处理器理解和使用的,存在有多至100000种机器语言的指令,下述是一些简单示例#指令部份的示例0000 代表 加载(LOAD)0001 代表 存储(STORE)...#暂存器部份的示例0000 代表暂存器 A0001 代表暂存器 B...#存储器部份的示例000000000000 代表地址为 0 的存储器000000000001 代表地址为 1 的存储器000000010000 代表地址为 16 的存储器100000000000 代表地址为 2^11 的存储器#集成示例0000,0000,000000010000 代表 LOAD A, 160000,0001,000000000001 代表 LOAD B, 10001,0001,000000010000 代表 STORE B, 160001,0001,000000000001 代表 STORE B, 1[1]

总结机器语言优缺点:

#优点:编写的程序可以被计算机无障碍理解、直接运行,执行效率高 。#缺点:1、复杂,开发效率低2、贴近\依赖具体的硬件,跨平台性差

2.2 汇编语言

汇编语言仅仅是用一个英文标签代表一组二进制指令,毫无疑问,比起机器语言,汇编语言是一种进步,但汇编语言的本质仍然是直接操作硬件,因此汇编语言仍是比较低级/底层的语言、贴近计算机硬件

#汇编语言汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作。例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。汇编的hello world,打印一句hello world, 需要写十多行,如下; hello.asm section .data ; 数据段声明msg db "Hello, world!", 0xA; 要输出的字符串len equ $ - msg ; 字串长度section .text ; 代码段声明global _start ; 指定入口函数_start: ; 在屏幕上显示一个字符串mov edx, len; 参数三:字符串长度mov ecx, msg; 参数二:要显示的字符串mov ebx, 1 ; 参数一:文件描述符(stdout) mov eax, 4 ; 系统调用号(sys_write) int 0x80 ; 调用内核功能; 退出程序mov ebx, 0 ; 参数一:退出代码mov eax, 1 ; 系统调用号(sys_exit) int 0x80 ; 调用内核功能

总结汇编语言优缺点:

#1、优点:相对于机器语言,使用英文标签编写程序相对简单,执行效率稍低,开发效率稍高。 #2、缺点:1、仍然是直接操作硬件,比起机器语言来说,复杂度稍低,但依旧居高不下,所以开发效率依旧较低2、依赖具体的硬件,跨平台性差

2.3 高级语言

高级语言是站在人(奴隶主)的角度,说人话,即用人类的字符去编写程序,而人类的字符是在向操作系统发送指令,而非直接操作硬件,所以高级语言是与操作系统打交道的,此处的高级指的是高层、开发者无需考虑硬件细节,因而开发效率可以得到极大的提升,但正因为高级语言离硬件较远,更贴近人类语言,人类可以理解,而计算机则需要通过翻译才能理解,所以执行效率会低于低级语言。

按照翻译的方式的不同,高级语言又分为两种:

2.3.1 编译型(如C语言):

类似谷歌翻译,是把程序所有代码编译成计算机能识别的二进制指令,之后操作系统会拿着编译好的二进制指令直接操作硬件,优缺点如下

#1、优点:编译一次之后就可以拿着结果重复运行,而无需再次翻译,执行效率高于解释型#2、缺点:编译型代码是针对某一个平台翻译的,当前平台翻译的结果无法拿到另外一个平台使用,即无法跨平台

2.3.2 解释型(如python):

类似同声翻译,需要有一个解释器,解释器会读取程序代码,一边翻译一边执行,优缺点如下

#1、优点:代码运行是依赖于解释器,不同平台有对应版本的解释器,所以代码是可以跨平台运行#2、缺点:每次执行都需要翻译,执行效率低于编译型

2.4 总结

​ 综上选择不同编程语言来开发应用程序对比

#1、执行效率:机器语言>汇编语言>高级语言(编译型>解释型)#2、开发效率:机器语言<汇编语言<高级语言(编译型<解释型)#3、跨平台性:解释型具有极强的跨平台型

​ 由于我们开发是应用程序,而应用程序必须运行于某一个平台之上,应用程序的快慢受限于平台(就好比F1赛车与宝马车同时跑在北京五环高速,都受限于道路环境,车速是差不多的)的快慢,并不是单从语言层面就可以提升整体执行效率的,于是开发效率、跨平台性才是我们需要优先考虑的问题,这就是我们首选python的原因

三 python介绍

​ 谈及python,涉及两层意思,一层代表的是python这门语言的语法风格,另外一层代表的则是专门用来解释该语法风格的应用程序:python解释器。

​ python的创始人为吉多·范罗苏姆(Guido van Rossum)。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus,他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,语法能够像shell一样简洁,易学易用、可拓展性强,同时兼顾C的强大功能。于是Guido在1989年的圣诞节期间,开始编写能够解释Python语言语法的解释器。

​ Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。最新的TIOBE排行榜/tiobe-index/,Python已飙升至世界第三。

​ Python可以应用于众多领域,如:人工智能、数据分析、爬虫、金融量化、云计算、WEB开发、自动化运维/测试、游戏开发、网络服务、图像处理等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。

3.1 Python解释器的发展史

1989年,Guido开始写Python语言的编译器。

1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。

Granddaddy of Python web frameworks, Zope 1 was released in 1999

Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.

Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础

Python 2.4 - November 30, , 同年目前最流行的WEB框架Django 诞生

Python 2.5 - September 19,

Python 2.6 - October 1,

Python 2.7 - July 3,

In November , it was announced that Python 2.7 would be supported until , and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible

Python 3.0 - December 3, (细心的读者会发现,08年时就推出了3.0,反而又推出了2.7?是因为3.0不向下兼容2.0,而很多公司已经基于2.0版本开发出了大量程序,公司已然投入了大量的人财物力,这就导致大家都拒绝升级3.0,无奈官方只能推出2.7过渡版本,之后我们都应该采用3.0解释器开发程序,但为了方便读者维护2.0版本的软件,我们在遇到两种版本的差异时会专门指出来)

Python 3.1 - June 27,

Python 3.2 - February 20,

Python 3.3 - September 29,

Python 3.4 - March 16,

Python 3.5 - September 13,

Python 3.6 - -12-23 发布python3.6.0版

3.2 Python解释器有哪些种类?

官方的Python解释器本质就是基于C语言开发的一个软件,该软件的功能就是读取以.py结尾的文件内容,然后按照Guido定义好的语法和规则去翻译并执行相应的代码。这种用C实现的解释器称为CPython,它是python领域性能最好,应用最广泛的一款解释器,我们在后面提到的解释器指的都是Cpython解释器。但其实解释器作为一款应用软件,完全可以采用其他语言来开发,只要能解释python这门语言的语法即可。Python解释器的一些种类如下,简单了解即可

# JythonJPython解释器是用JAVA编写的python解释器,可以直接把Python代码编译成Java字节码并执行,它不但使基于java的项目之上嵌入python脚本成为可能,同时也可以将java程序引入到python程序之中。# IPythonIPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。这就好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。# PyPyPyPy是Python开发者为了更好地Hack Python而用Python语言实现的Python解释器。PyPy提供了JIT编译器和沙盒功能,对Python代码进行动态编译(注意不是解释),因此运行速度比CPython还要快。# IronPythonIronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

四 安装Cpython解释器

Python解释器目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python解释器,在Windows系统上需要安装一下,具体步骤如下。

4.1、下载python解释器

打开官网 ,按提示下载即可

4.2、安装python解释器

4.3、测试安装是否成功

windows --> 运行 --> 输入cmd ,然后回车,弹出cmd程序,输入python,如果能进入交互环境 ,代表安装成功。

五 第一个python程序

5.1 运行python程序有两种方式

方式一: 交互式模式

方式二:脚本文件

# 1、打开一个文本编辑工具,写入下述代码,并保存文件,此处文件的路径为D:\test.py。强调:python解释器执行程序是解释执行,解释的根本就是打开文件读内容,因此文件的后缀名没有硬性限制,但通常定义为.py结尾print('hello world')# 2、打开cmd,运行命令,如下图

总结:

#1、交互式模式下可以即时得到代码执行结果,调试程序十分方便#2、若想将代码永久保存下来,则必须将代码写入文件中#3、我们以后主要就是在代码写入文件中,偶尔需要打开交互式模式调试某段代码、验证结果

5.2 注释

在正式学习python语法前,我们必须事先介绍一个非常重要的语法:注释

1、什么是注释

注释就是就是对代码的解释说明,注释的内容不会被当作代码运行

2、为什么要注释

增强代码的可读性

3、怎么用注释?

代码注释分单行和多行注释1、单行注释用#号,可以跟在代码的正上方或者正后方2、多行注释可以用三对双引号""" """

4、代码注释的原则:

1、不用全部加注释,只需要为自己觉得重要或不好理解的部分加注释即可2、注释可以用中文或英文,但不要用拼音

六 IDE工具pycharm的使用

6.1、什么是IDE?为何要有IDE

在编写第一个python程序时,存在以下问题,严重影响开发效率

问题一:我们了解到一个python程序从开发到运行需要操作至少两个软件

1、打开一个软件:文本编辑器,创建文本来编写程序2、打开cmd,然后输入命令执行pyton程序

问题二:在开发过程中,并没代码提示以及纠错功能

综上,如果能有一款工具能够集成n个软件的功能,同时又代码提示以及纠错等功能,那么将会极大地提升程序员的开发效率,这就是IDE的由来,IDE全称Integrated Development Environment,即集成开发环境,最好的开发Python程序的IDE就是PyCharm。

6.2、pychram安装

# 下载地址: /pycharm/download 选择Professional专业版

安装完成后注册,然后启动,会让你先创建一个项目,其实就是一个文件夹,我们以后的代码都存在这里面。

6.3、Pycharm创建文件夹

创建文件夹是管理文件的良好方式

6.4、如何创建文件并编写程序执行

创建py文件test.py

在test.py中写代码,输入关键字的开头可以用tab键补全后续,并且会有代码的错误提示

插图:Pycharm执行文件

Python基础——计算机组成原理 操作系统概述 编程语言的由来 编程语言分类 python介绍 安装Cpython解释器 第一个python程序

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。