• DAY 01 PYTHON入门


    计算机组成原理

    什么是计算机?

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

    为什么要用计算机?

    计算机可以像奴隶一样不吃、不喝、不睡觉一直工作,把人类解放出来,从而解放人力。

    计算机的五大组成部分

    计算机有五大组成部分,计算机设计核心在模仿人类,我们可以把计算机的五大组件比喻成人类的各种器官。

    ①控制器

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

    ②运算器

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

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

    ③存储器

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

    存储器主要分为内存与外存:内存相当于人的短期记忆。基于电工作,断电数据丢失,可临时保存数据; 外存(如磁盘),相当于人的笔记本,基于磁工作,断电数据不会丢失,永久保存数据。

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

    ④输入设备Input

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

    ⑤输出设备Output

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

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

    与运行程序相关的三大核心硬件

    CPU、内存、硬盘。

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

    一、计算机硬件(******)

    CPU:中央处理器(CPU,英语:Central Processing Unit / Processor),是电子计算机的主要设备之一,电脑中的核心配件。

    其功能主要是解释计算机指令以及处理计算机软件中的数据。电脑中所有操作都由CPU负责读取指令,对指令译码并执行指令的核心部件。

    中央处理器。控制器+运算器=CPU,CPU相当于人的大脑。

    内存:

    内存是计算机的重要部件之一。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行。内存性能的强弱影响计算机整体发挥的水平。

    内存(Memory)也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数据。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到CPU中进行运算。当运算完成,CPU将结果传送出来。内存的运行也决定计算机整体运行快慢的程度。内存条由内存芯片、电路板、金手指等部分组成。

    硬盘:

    硬盘是电脑主要的存储媒介之一,由一个或者多个铝制或者玻璃制的碟片组成。碟片外覆盖有铁磁性材料。

    硬盘有固态硬盘(SSD 盘,新式硬盘)、机械硬盘(HDD 传统硬盘)、混合硬盘(HHD 一块基于传统机械硬盘诞生出来的新硬盘)。

    SSD采用闪存颗粒来存储,HDD采用磁性碟片来存储,混合硬盘(HHD: Hybrid Hard Disk)是把磁性硬盘和闪存集成到一起的一种硬盘。

    绝大多数硬盘都是固定硬盘,被永久性地密封固定在中。磁头复位节能技术:通过在闲时对磁头的复位来节能。

    多磁头技术:通过在同一碟片上增加多个磁头同时的读或写来为硬盘提速,或同时在多碟片同时利用磁头来读或写来为磁盘提速,多用于服务器和数据库中心。

    二、操作系统(*****)

    操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

    三、(***)

    什么是编程语言?

    编程语言(programming language)可以简单的理解为一种计算机和人都能识别的语言。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。

    什么是编程?

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

    什么是程序?

    程序是为了实现一个特定的目标而设计的一组可操作的工作步骤,对于计算机而言,程序就是系统可以识别的一组有序的指令。

    什么是进程?

    进程:进程就是正在进行中的程序。(动态)

    为何要编程?

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

    四、编程语言分类(***)

    编程语言总体分以为机器语言、汇编语言、高级语言,如下

    机器语言

    由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。只有目标程序才能被计算机直接识别和执行。但是机器语言编写的程序无明显特征,难以记忆,不便阅读和书写,且依赖于具体机种,局限性很大,机器语言属于低级语言。

    用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。

    机器语言是微处理器理解和使用的,用于控制它的操作二进制代码。

    尽管机器语言好像是很复杂的,然而它是有规律的。

    汇编语言

    汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作。例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。

    高级语言

    高级语言是大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。

    高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,像最简单的编程语言PASCAL语言也属于高级语言。

    高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:

    编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行(编译后生成的可执行文件,是cpu可以理解的2进制的机器码组成的),使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .obj,也就是OBJ文件)才能执行,只有目标文件而没有源代码,修改很不方便。

    解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器,就像跟老外说话,必须有翻译在场),但这种方式比较灵活,可以动态地调整、修改应用程序。如Python、Java、PHP、Ruby等语言。

    特点:

    机器语言

    优点是最底层,速度最快,缺点是最复杂,开发效率最低

    汇编语言

    优点是比较底层,速度最快,缺点是复杂,开发效率最低

    高级语言

    编译型语言执行速度快,不依赖语言环境运行,跨平台差。

    解释型跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行。

    五、Python介绍(***)

    Python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。最新的TIOBE排行榜,Python赶超C++占据第3, 与Java、C一起成为全球最流行的3大编程语言。Python崇尚优美、清晰、简单,上手简单,非常适合做为第一门编程语言来学习。

    Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。

    六、安装多版本python解释器(*****)

    解释器其实也包括编译过程,只是这个编译过程没有生成目标代码。Python解释器由编译器和虚拟机构成,编译器将源代码转换成字节码,然后再通过Python虚拟机来逐行执行这些字节码。

    python解释器有很多种:
    CPython:C语言开发,使用最广,默认的解释器
    IPython:基于CPython之上的交互式解释器
    PyPy:采用JIT技术,对python代码进行动态编译,追求执行速度
    Jython:运行在Java平台上的解释器,可以直接编译成Java字节码执行
    IronPython:同理Jython,运行在 .Net 平台上
    虽说有那么多种解释器,但是我们常用的还是CPython,而对于Java、.Net平台来说,更常用网络调用来交互。我个人来说,平时测试经常使用IPython,很方便。

    七、第一个python程序(******)

    1 安装python语言的解释器
    本机是windows系统,安装了Anaconda。环境变量中的用户变量下面的path配置Anaconda安装路径。
    安装是否成功测试:
    输入 python
    显示 python3.8.5版本…

    2 第一个python程序
    有仪式感 hello world
    紧接着上一步,在三个键头后面输入print(‘hello world’)
    命令行界面显示 hello world

    python程序运行的三个步骤

    python程序执行过程:
    1、执行 .py 文件,就会启动python解释器
    2、编译器将源文件解释成字节码
    3、虚拟机将字节码转化成机器语言,与操作系统交互
    4、程序运行结束后,将字节码存到pyc文件,便于后续直接执行

    八、变量(*****)

    在计算机科学中,变量是表示计算机存储器中表示的一些值的名称(通常是字母字符或字)。在数学逻辑中,变量是表示理论的未指定术语的符号,或者是理论的对象,在不参考其可能的直观解释的情况下被操纵。

    补充:

    一、什么是缓冲区

    缓冲区(buffer),它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区,显然缓冲区是具有一定大小的。

    缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。

    CPU的Cache,它中文名称是高速缓冲存储器,读写速度很快,几乎与CPU一样。由于CPU的运算速度太快,内存的数据存取速度无法跟上CPU的速度,所以在CPU与内存间设置了cache为CPU的数据快取区。当计算机执行程序时,数据与地址管理部件会预测可能要用到的数据和指令,并将这些数据和指令预先从内存中读出送到cache。一旦需要时,先检查Cache,若有就从Cache中读取,若无再访问内存,现在的CPU还有一级cache,二级cache。简单来说,cache就是用来解决CPU与内存之间速度不匹配的问题,避免内存与辅助内存频繁存取数据,这样就提高了系统的执行效率。

    二、缓存(cache)与缓冲(buffer)的主要区别

    Buffer的核心作用是用来缓冲,缓和冲击。比如你每秒要写100次硬盘,对系统冲击很大,浪费了大量时间在忙着处理开始写和结束写这两件事嘛。用个buffer暂存起来,变成每10秒写一次硬盘,对系统的冲击就很小,写入效率高了,日子过得爽了。极大缓和了冲击。

    Cache的核心作用是加快取用的速度。比如你一个很复杂的计算做完了,下次还要用结果,就把结果放手边一个好拿的地方存着,下次不用再算了。加快了数据取用的速度。

    简单来说就是buffer偏重于写,而cache偏重于读。
    PS:有时候大家要好好理解这些专有名词字面上的意思,对理解这些概念有好处,缓冲:缓解冲击,缓存:临时存储。
  • 相关阅读:
    svn安装教程
    六、数组类的创建
    五、顺序存储线性表分析
    四、StaticList 和 DynamicList
    三、顺序存储结构的抽象实现
    二、线性表的顺序存储结构
    一、线性表的本质和操作
    专题五:局部变量、全局变量global、导入模块变量
    专题四:文件基础知识、字符编码
    专题3-2:列表基础知识:二维list排序、获取下标和处理txt文本实例
  • 原文地址:https://www.cnblogs.com/DEJAVU888/p/14139489.html
Copyright © 2020-2023  润新知