Python学习笔记-计算机基础

1.学任何东西都要问3个问题

  • 它是什么?
  • 为什么要用它?
  • 如何使用它?

2.了解一个东西一定要把它的定义搞清楚。

  • 为什么计算机领域和金融领域喜欢造词?因为作为既得利益者,他们想把其他人挡在门外。
  • 鲁迅说过 如果不推行白话文,中国必亡。为什么?古人的智慧的结晶是用文言文写的,理解起来很困难。所以需要老师这个职业。
  • 老师这个职业是干什么的?就是给你解释这些文言文的,往大了说就是,要给你解释这个专业的名词的。
  • 以前的文言文都是上层阶级垄断的,因为他们请的起老师。
  • 那么为啥要推行白话文,降低人们学习的难度,让每个人都受到教育。

3.Python是什么?

  • python是一门编程语言
  • 那么编程语言是什么?
    • 语言是人与人交流使用的。
    • 英语是跟英国人交流使用的,日语是跟日本人交流使用的。
    • 那么,编程语言就是跟机器交流使用的语言。
  • (扩展1)为什么需要跟机器交流呢?
    • 机器发明出来其实就是帮助人干活的,有人认为它是奴隶,我更倾向于它是"生物",一种可以帮助我们的"生物"。
    • 跟机器交流,可以让我们变的更高效。
  • 那么什么是编程呢?
    • 把做事的步骤按照顺序写下来,
    • 翻译成机器能识别的语言。(写到纸上)
  • (扩展2)那么什么是程序呢?
    • 一系列记录做事的纸(对机器来讲是一系列代码文件)
  • (扩展3)那什么是进程呢?
    • 运行起来的程序,正在进行的程序。叫进程。
  • (扩展4)为什么要编程?
    • 编程的目的是让我更高效。机器是可以24小时运行。

4.计算机由什么组成?

  1. 运算器
    • 数学运算和逻辑运算
      • 数学运算指 加减乘除+-*/
      • 逻辑运算指 判断是否满足条件。(更像数学里面的>< = !=大于小于等于不等于,这些。)
  2. 控制器
    • 控制系统,控制硬件的运行。
    • (我的理解:运算器,只负责运算;存储器,只负责存储;而控制器,是控制这两个东西如何交互的)
    • (我的理解:也就说,控制器是 串起整个架构的东西)--①
    • 扩展 控制器+运算器=CPU 
  3. 存储器
    • 内存
      • 基于电工作的,内存里存放的数据都是电信号
      • 特点:存取速度快,断电数据丢失
    • 外存(机械硬盘+SSD固态硬盘)
      • 磁盘:
        • 基于磁工作,磁盘里面存放的是磁信号
        • 特点:存取速度远远慢于内存,断电数据依旧存在
  4. 输入设备input
    • 鼠标,键盘
  5. 输出设备output
    • 显示器打印机
  • (注意)有个特别重要的IO设备,是存储器。即 硬盘。

5.程序运行的步骤是什么?

  • 读取硬盘-->加载到内存-->运行程序
  • (扩展1)硬盘速度快,体现在启动程序快。
  • (扩展2)内存大,体现在可以同时运行多个程序。
  • (扩展3)CPU目前都够用,提升不大。
  • (扩展4)显卡提升,体现在图像渲染的效果。
    •   比如游戏,CPU是计算游戏里的,运动,碰撞,互动。
    •        显卡是把CPU计算的结果,以及场景的变动,光影的变化,人物的动作,各种特效等等。输出到显示器上。--②

6.bit和Byte,KB,MB这些都是什么?

  • 我们都知道计算机是用电来控制的。电只有两种变化,高电平,低电平。以前的计算机科学确实需要懂的逻辑电路。
  • 为了方便,人们把高低电平用二进制01来表示,且机器已经帮我们自动集成了01转换为高低电平的过程
  • 这里面一位的01变化,代表1bit ;8位的01变化代表1B (Byte),一个大B。 
  • 1024个大B代表1KB,1024个KB代表MB,1024个MB代表1GB...
  • (扩展)为什么8位01的变化代表一个Byte(字节)?
    • 因为最开始,美国科学家,想用01的变化用来表示英文字符,
    • 1位的01的变化,只能代表2个字母。2位的01变化,可以代表4个字母...
    • 26个英文字符再加上些字符,大约有100来个,2^7=128 也就是7位应该就可以了。
    • 为了以后的扩展,选择用了8位,可以有256种变化。他们觉得可以了,应该能hold住了。
    • 这256种变化对应的字符 ,形成一个表。叫ASCII码表。
    • 没想到后来计算机的普及,让世界上的大部分人可以用上计算机。那么当初256种变化,表示的ASCII码表就不够用了。
    • 所以,后来开始推广了Unicode表,也就是万国码表,可以表示所有国家的码表。
    • 让所有国家的字符都可以展示了。

 7.复杂指令集和简单指令集?

  • 复杂指令集是指1条指令能干的事情多,能干的事情复杂
    • 优点是 程序设计指令的时候简单,比如吃饭这个事情,需要3条就执行完成
    • 缺点是 不稳定
    • 应用场景是 个人电脑、商用电脑,追求效率 
    • 实例 x86 架构是复杂指令集
    • 复制指令集,也称为  CISC 指令集(Complex Instruction Set Computing, CISC)
  • 简单指令集是指1条指令能干的事情少,能干的事情简单
    • 优点是 程序稳定
    • 缺点是 程序设计指令的时候 困难,比如吃饭这个事情,需要30条执行完成
    • 应该场景是 军事领域 航空领域,追求稳定
    • 实例 arm架构,苹果的M1芯片使用的是精简指令集
    • 简单指令集,也称 精简指令集计算机(Reduced Instruction Set Computer, RISC)
  • (扩展)
    •  ARM架构,过去称作高级精简指令集机器(英语:Advanced RISC Machine,更早称作艾康精简指令集机器,Acorn RISC Machine)

8.在x86-64这里面64是指什么?

  • 64是指64位,64位bit 
  • CPU在从内存中读取数据的时候,1次能读取多少呢?人为规定能读取64个bit,就叫64位处理器。
  • 64位处理器可以,运行64位软件,32位软件,都可以。
  • 32位处理器可以,运行32位软件,不能运行64位的软件。

9.CPU=运算器+控制器,CPU里面真的没有存储设备吗?

  • CPU有寄存器,可以用做存储。速度最快,造价最贵
  • CPU还有高速缓存,也是可以存储。速度仅次于寄存器,高于内存,造价稍稍便宜些。

10.存储设备有哪些?

  • 造价高到低 :寄存器--高速缓存--内存--固态硬盘--机械硬盘
  • 速度快到慢 :寄存器--高速缓存--内存--固态硬盘--机械硬盘
  • (扩展) 寄存器和高速缓存是集成到CPU里面的

11.四核八线程和八核八线程谁更快?

  • 1个芯片里面有4核,意味着有4个人干活,有8核意味着有8个人干活。
  • 4核8线程 是指4个人干8个人的活,他们1个人可以干2个人的事情。表面看起来是8个人干活,看起来是8线程,是真四核假8核。
  • 8核8线程,是指8个人干8个人的活,每个人专心致志的干活。是真8核
  • 所以,8核的快。(因为他真的有8个人)
12.固态硬盘为什么比机械快?
13.虚拟内存是什么?
  • 当内存不够用的时候,系统会崩掉。为了防止这种情况,可以设置个虚拟内存,系统会把一些临时不用的数据存到硬盘里,这样系统就不会崩掉。
  • linux常用这个。

14.操作系统是什么?它的出现改变了什么?

  • 假设有个开发场景,给你一堆硬件,让你开发一个爱奇艺的软件。
  • 你需要先开发一个控制程序,控制这些硬件,如何从硬盘中读取文件,如何让显示器显示内容,如何让扬声器播放声音。。。
  • 然后,再写上层的爱奇艺这个软件。
  • 同样的,我们开发一个QQ聊天软件,也需要把这些控制程序再写一遍,再写QQ这个上层软件。
  • 控制程序这个部分工作重复了,有人站出来说,他可以写一个统一的控制程序。大家都用他的就好了。
  • 于是,这个统一的控制程序诞生了,叫操作系统。
  • 好了,到这里可以回答这个问题了。
  • 操作系统是一个控制程序,控制硬件的一个统一的程序。
  • 它的出现 提高了人们的开发效率。不必重复做同一件事了。
  • 操作系统 是一个中间层,下面连接了计算机的硬件,上面连接了应用程序。起到了一个桥梁的作用。

15.计算机硬件的三层结构是什么?

  • 应用程序
  • 操作系统
  • 计算机硬件

 

 16.学习python最笨的方式是什么?

  • 天天敲,如果能保证每天的代码量300就可以了,
  • 如果累计到7W行代码,应该就出师了。

17.程序运行的起来的数据都在内存,不同的程序之间内存的数据为什么是隔离的?

  • 程序是人类逻辑思维的体现,人类的思维是完美的吗?
  • 不是,大约写个1千5百行代码,就会出现一个Bug,也就是思维漏洞
  • 而一旦运行一个QQ出现了BUG,黑客通过QQ的bug 获取到了QQ的内存数据,
  • 假设同时电脑里也开着银行的软件,如果程序间的内存数据全都是共享,黑客就会获得所有正在运行程序的数据。很危险。
  • 故,基于这个原因(当然还有其他原因)。程序之间的数据是隔离的。
  • 也就是为什么进程间的数据不能共享,如果要共享需要想其他办法。

18.windows桌面上一个txt文件,真的是一个文件吗?

  • 现实生活中,文件是什么?我们可以理解为一张纸,记录东西的一张纸。
  • 为什么要往纸上写东西,是为了怕遗忘。希望它永久保存起来
  • 而windows桌面 这个txt文件是操作系统虚拟出来的一个图标,一个功能,一个操作硬盘的功能。
  • 本质是为了让用户往硬盘里记录东西的一种方式。
  • 跟我们生活中用到文件目的是一样的,所以,我们给这个功能,这个图标,统称为【文件】。
  • 比如,我现实生活中让你记录我的电话号码,你会用纸和笔记录下来。
  • 在计算机中,我让你记录我的电话号码,你会打开一个txt文件,用键盘输入数字,保存起来。
  • 本质上都是希望永久保存,这条电话号码。
  • (扩展)文件夹的概念跟文件类似。

 19.编程语言的分类有哪些?

  • 机器语言:直接用二进制指令编写代码
    • 缺点:1.不好记忆;2.编译的过程复杂。
  • 汇编语言:用英文便签取代二进制
    • 缺点: 1 编译的过程复杂 (仅在机器语言的基础上改进了缺点1,不好记忆。)
  • 高级语言:用人类能理解的语言去编写代码(分为两种)
    • 编译型(C语言,go语言):
      • 特点:编译一次,也就是翻译一次,第二次运行不用在编译。
      • 优势:运行效率高
      • 劣势:开发效率不高
    • 解释型(shell语言,Python语言):
      • 特点:每次执行都需要翻译,第一次执行要翻译,第二次执行也要翻译,第N次执行也要翻译。
      • 优势:开发效率高
      • 劣势:运行效率不高
    • 说明:这里的【翻译】是指:
      • 高级语言是对人比较友好,但是执行的时候,都要翻译给成机器语言,计算机才能运行。
      • 也就是说,无论是编译型还是解释型,都要翻译成机器语言去执行。
      • 只不过,编译型,需要翻译一次。解释型,每次都要翻译。
    • java是什么类型的?

20.开发效率取决什么?

  • 这门语言封装程度高不高,(用起来上手容易)
  • 语言设计是否优美,(用的爽不爽)
  • 有没有人替你造轮子,(玩的人多不多,有没有大佬开发demo)

21.什么语言是最牛逼的?

  • 单纯的比较没有意义,要从具体的应用场景来看。
  • 比如,追求性能的极限,开发一些硬件功能,不需要跟网络通信。汇编语言,C语言是有优势的。
  • 比如,追求开发效率,需要网络通信,Python是有优势的。
  • 比如,追求高并发效率上,基于网络通信,go,java是有优势的。

22.现在的软件慢在哪里?

  • 现在的软件大都需要网络通信,而网络通信是有IO延迟的,一般延迟个3-5秒都很正常,
  • 而7200转硬盘的IO最大延迟7毫秒,
  • 也就是说,现在目前阻塞的瓶颈在网络IO延迟上。
  • 瓶肚子在大,运行在快,在瓶颈这里也会卡主。

23.Python的介绍

  • 据说Python是龟叔在97年圣诞节为了打发无聊的时间写出来的。
  • Python名字的由来,据说当时龟叔喜爱的电视剧正好有一个python这个单词,就起了这个名字。
  • Python发明的初心,是想发明一种想shell一样简单的语法,并且能具备和C语言一样强大功能的语言。
  • Python是一门解释型语言,也就是要跟Python解释器配套使用。

24.先有Python语法还是先有Python解释器?

  • 龟叔发明Python的时候,是用C语言编写的解释器。官方使用的也是C Python解释器。
  • 解释器是为了解释Python语法给机器听的。
  • 也就是说,必然是先有语法,再有解释器。

25.现在说Python有几层含义?

  1. 指代Python语法。
  2. 指代Python解释器。

26.软件在公司会一直使用吗?

  • 不会
  • 一般的一个软件在公司的生命周期也就是5年的时间,长一点的也就是10年。
  • 跟一个游戏很少能火十年,一个电视台,一个系列节目很少能持续播10年一样。(春晚除外)

27.python程序为什么要加注释?。

  • 注释是为了增加代码的可读性
  • 可以用多行注释,或者单行注释
  • 多行注释一般做为一模块功能的说明,常用成对的3个双引号。
  • 单行注释一般用做关键代码的逻辑说明,分情况加载代码的上面或者后面。如果代码太长就加在上面。
  • 关键要记住注释是为了增加代码的可读性,而不是降低了可读性。
  •  

     

 

参考资料:

《计算机组成原理--简书》 

《一文读懂CPU和显卡究竟先升级谁》 

posted @ 2022-11-14 21:35  o蹲蹲o  阅读(46)  评论(0编辑  收藏  举报