python day 02
一、计算基础-编程
1.什么是编程语言
和计算机交流的一种介质
2.什么是编程
编程指的是:程序猿基于某种编程语言的语法格式将自己脑中想要让计算机做的事,写到文件中。
3.为什么要编程
代替劳动力
二、计算机的组成
五大组成
1.运算器
负责算术运算和逻辑运算,和控制器一起组成CPU
2.控制器
负责发送和接收指令
3.存储器
用来存储正在运行的程序,分为
内存:优点: 速度快
缺点: 容量小,断掉即消失
外存 :优点:容量大,永久存储
缺点:速度慢
4.输入设备
5.输出设备
组成补充
1.多核CPU
一个CPU相当于一个大脑,多核CPU--》计算机同时拥有多个CPU,同一时刻处理多件事情(多进程)
2.32位和64位
计算机如何存储图片:计算机只认识0(低电频)和1(高电频),图片本质就是一串0和1
鼠标点击--》低电频低电频低电频高电频低电频 --》00010
光盘 --》凹0凸1刻印
32位--》计算机一次性能处理32个0和1
64位--》计算机一次性能处理64个0和1
32位和64位本质上是同一种东西
安装包是64位的(一次性给你64个0和1),计算机是32位的(一次性能接收32个0和1)
3.机械硬盘的工作原理
机械手臂:读取数据
磁道:存储数据
扇面:划分了磁道,多个扇面(512kb,计算机一次性从机械硬盘上读取512kb数据)其实就是一个盘(区)
平均寻磁道时间:5ms
平均延时时间:以7200r/min的电脑为例
平均寻找数据时间:5+4.15=9.15ms
4.固态硬盘
基于电容存储
优点:不需要机械手臂,基于电存储
三、操作系统
1.什么是文件
存储信息的介质,操作系统提供给你的一个虚拟的概念,这个虚拟的概念可以用来存储信息,帮你滑动了机械手臂
文件接口(操作系统提供的,而文件只是其中的一个接口):帮你把对硬件的复杂操作简单化
双击接口(操作系统提供的):让你快速打开一个应用程序
2.操作系统的作用
提供给我们一个一个接口,让我们不再关心硬件的复杂操作,让复杂操作简单化
3.应用程序的启动
应用程序的启动:应用程序代码有硬盘读入内存,CPU运行应用程序码,运行成功即可使用应用程序。虽然应用程序的启动和操作系统的启动有着异曲同工之处,但是得明确一点:装了操作系统之后才能装应用程序,才有应用程序这个概念。因此上述应用程序对硬件控制的每一步操作,都依赖于操作系统的帮助。
- 双击QQ--》让操作系统通知CPU(QQ图标是操作系统提供给你的)(找到QQ在外存的位置)
- cpu让内存去外存读取QQ的数据,QQ数据进入内存
- 启动QQ
4.计算机的组成(有操作系统后)
- 应用程序(软件):和操作系统交互
- 操作系统(软件):和硬件交互
- 硬件:硬件直接交互
5.操作系统的启动
操作系统的启动:操作系统代码由硬盘读入内存(BIOS程序),CPU运行操作系统代码(CMOS存储器),运行成功后操作系统接管操作硬件的工作。
启动软件,首先启动操作系统找软件在硬盘上的位置; 操作系统本质也是一个软件,启动操作系统也需要找到操作系统在硬盘中的位置(要找就必须通过操作系统)
临时操作系统(ROM存储器)
计算机出厂的时候就写死了,他会区CMOS存储器上调用操作系统的路径,只负责寻找操作系统的路径
临时内存(CMOS存储器)
用电池供电,存储了操作系统的路径(重装操作系统修改启动盘的位置,改的就是这个),存储了时间
- 开机,启动临时操作系统
- 临时操作系统区CMOS存储器上找到操作系统的路径
- 启动操作系统,临时操作系统关闭
四、编程语言分类
1.编码
每一个字符都是由0和1组成
2.机器语言
000101110011 a+b --》(设备) --》 低低低高
优点:执行速度非常快,直接和硬件交互
缺点:开发速度非常慢
3.汇编语言
add(a,b)(汇编语言 )--》(设备) --》 000101110011(机器语言) --》(设备)--》低低低高(高低压电频)
优点(相较于机器语言):开发效率高
缺点(相较于机器语言):执行效率低
4.高级语言
a+b(解释型语言) --》(设备)--》a+b(高级语言/编译型语言) --》(设备--翻译器)--》add, a, b (汇编语言)--》(设备)--》000101110011(机器语言) --》(设备)--》低低低高(高低压电频)
编译型语言
一次性翻译所有代码位机器代码
优点(相较于解释型语言):执行效率高
缺点(相较于解释型语言):开发效率低(调试bug非常复杂)
解释型语言(通过设备的翻译形式)
类似同声传译,说一句翻译一句,解释性语言的翻译器是通过编译型语言写出来的。
优点(相较于编译型而言):开发效率高
缺点(相较于编译型语言):执行效率低
五、网络瓶颈效应
编程 --》完成具体的事情 --》 帮人类干活
写一个应用程序(一定要联网)
程序一定要通过网络通信
1.木桶效应
2.网瓶颈效应
网络通信的时间(10ms)远远大于执行程序的时间(0.01ms)--》程序的执行效率没必要考虑了 --》 (网络的应用程序)解释型语言 --》 Python
操作系统(单机操作的应用程序) --》 编译型语言
假设一个程序使用编译型语言发送消息的执行效率为0.001ms;使用解释型语言的执行效率为0.1ms,但是,你要清楚是,互联网的网络延迟可能需要1ms,而你这靠语言节省下来的0.099ms相较于网络延迟的1ms可能无伤大雅,因为你发送第二条消息需要等网络延迟结束才能开始发送。这也就是互联网中的瓶颈理论。