计算机基础总结
目录
- 计算机基础之编程
- 计算机组成
- 固态硬盘
- 操作系统
- 编程语言的分类
- 网络的瓶颈效应
- 执行python程序的两种方式
- 变量
- 常量
- 变量的三种打印方式
- python变量内存管理
- 花式赋值
- 布尔类型
- 解压缩
- python与用户交互
- 三种格式化输出的方式
- 基本运算符
- 流程控制之if判断
- 流程控制之while循环
- 流程控制之for循环
- 数字类型内置方法
- 字符串内置方法
- 列表内置方法
- 元组内置方法
- 字典内置方法
- 集合内置方法
- 散列表(哈希表)
- 深浅拷贝
- 字符编码
- python2和python3字符编码的区别
- 文件处理的基本使用
- 打开文件的三种模式
- 绝对路径和相对路径
- with管理文件上下文
- 文件的高级应用
- 文件的修改
- 函数的定义
- 三种定义函数的方式
- 函数的调用
- 函数的返回值
- 函数的参数
- 可变长参数
- 函数对象
- 函数嵌套
- 名称空间与作用域
计算机基础之编程
什么是编程语言
人与计算机交流的介质
什么是编程
通过编程语言写一堆文件
为什么要编程
替代劳动力
计算机组成
CPU
控制器
控制硬件
运算器
算术运算和逻辑运算
存储器
主存
优点:快
缺点:容量小/断掉即消失/贵
外存
优点:容量大/永久存储/便宜
缺点:慢
IO设备
《追寻记忆的痕迹》
输入设备
输入信息,如键盘/鼠标
输出设备
输出信息,如显示屏/打印机
32位和64位
一次性读取的二进制位
多核cpu
同一时刻干多件事情
机械硬盘工作原理
机械手臂
读取数据
磁道
存储数据
扇区
划分磁道
平均寻道时间
5ms
平均延迟时间
4.15ms
平均寻找数据时间
9.15ms
固态硬盘
基于电容存储数据
操作系统
什么是文件
操作系统提供的虚拟概念,存储信息
操作系统有什么用
把对硬件的复杂操作简单化
计算机三大组成
- 硬件
- 操作系统
- 软件
操作系统的启动
- 启动临时操作系统
- 临时操作系统启动真正的操作系统
- 关闭临时操作系统
应用程序的启动
- 双击qq(给操作系统发送指令)
- 操作系统给CPU发送指令
- CPU给内存发指令
- 内存给外存发指令
- 外存找到qq的数据丢给内存
- 启动qq
编程语言的分类
机器语言
优点:执行效率高
缺点:开发效率低
汇编语言
优点:开发效率高
缺点:执行效率低
高级语言
编译型语言
优点:执行效率高
缺点:开发效率低
解释型语言
优点:开发效率高
缺点:执行效率低
网络的瓶颈效应
网络延迟的时间远远大于程序执行的时间
执行python程序的两种方式
交互式
写一行解释一行
命令行式
python 文件.py
变量
什么是变量
描述时间万物的状态
变量的组成
变量名(接收变量值) = 变量值(具体的值)
变量名的命名规范
- 具有描述意义
- 数字/字母/下划线组成,不能以数字开头,_丢弃
- 不能用python关键字
变量名的两种定义方式
- 下划线(推荐)
- 驼峰体
常量
不变化的量(但这是约定俗称的)
变量的三种打印方式
- 打印变量值
- 打印变量内存地址
- 打印变量的数据类型
python变量内存管理
引用计数
针对变量值,变量值的引用次数
垃圾回收机制
变量值的引用计数为0,python解释器自动回收变量值
小整数池
[-5,256]之间的整数在python解释器启动就自动分配内存
花式赋值
链式赋值
a = b = 10
交叉赋值
x, y = y, x
布尔类型
所有数据类型自带布尔值,除了0/None/空/False自带布尔值位False,其他自带为True
解压缩
x, y, z = [1, 2, 3]
python与用户交互
input,接收的永远是字符串
三种格式化输出的方式
%占位符
'%s'%name
format格式化
'{}'.format(name)
f-string格式化
f'{name}'
基本运算符
算术运算符
+-*/ // % **
逻辑运算符
- and 两者都
- or 其中一者为True,则为True
- not 非
比较运算符
> >= < <= != ==
成员运算符
- in
- not in
身份运算符
- is
- is not
赋值运算符
= += -= *= /= **= //= %=
位运算符
111 000
&
011 100
011 000
- & 都为1则为1,否则为0
运算符的优先级
要优先的加括号
流程控制之if判断
单分支结构
if
双分支结构
if
else
多分支结构
if
elif 可以用无数个
else
if嵌套
if
if
流程控制之while循环
while + continue
跳出本次循环,不执行下面的代码
while + break
跳出本层循环,终止循环
while + else
没有被break掉执行else下的代码
条件控制while循环
while count < 3:
while嵌套
while
while
流程控制之for循环
for + break
跳出本层循环,终止循环
for + continue
跳出本次循环,不执行下面的代码
for + else
没有被break掉执行else下的代码
for循环嵌套
for i in range(1,10):
for j in range(i):
print(....)
print()
数字类型内置方法
整型
浮点型
字符串内置方法
列表内置方法
元组内置方法
字典内置方法
集合内置方法
散列表(哈希表)
- 乱序
- 不可重复的
- key不能为可变数据类型
深浅拷贝
拷贝
当l2为l1的拷贝对象,l1变换,l2变化
浅拷贝
当l2为l1的浅拷对象,l1内部不可变数据类型变化,l2不变;l1内部可变数据类型变化,l2变
深拷贝
当l2为l1的深拷贝对象,l1内部变化,l2不变
字符编码
python2和python3字符编码的区别
python解释器发生的三件事情
- python解释器相当于文本编辑器,读入字符(涉及字符编码)
- 识别语法/关键字,会有逻辑/语法错误
- 存储变量,然后往终端打印 (设计字符编码)
文件处理的基本使用
- 打开文件 open
- 修改文件 write / read
- 保存文件 flush
- 关闭文件 close
打开文件的三种模式
- r 只读
- w 清空写入
- a 追加写入,把光标移动到文件尾部
打开文件的两种方法
- t模式 文本模式
- b 二进制模式,适用于图片/音频/视频
绝对路径和相对路径
- 绝对路径:盘符
- 相对路径:相对执行文件的文件夹下的所有文件
with管理文件上下文
不用关闭文件,同时打开多个文件
文件的高级应用
新的文件打开的三种模式
- r+
- w+
- a+
光标的移动
以字节为单位
- seek 移动光标, 0表示开头,1表示当前位置,2表示末尾
- tell 告诉当前位置
truncate 截断文件
read 以字符为单位
文件的修改
with open('test.txt', 'r', encoding='utf8') as fr, open('test_swap.txt', 'w', encoding='utf8') as fw:
data = fr.read()
# 修改
fw.write(data)
import os
os.remove('test.txt')
os.rename('test_swap.txt', 'test.txt')
函数的定义
def 函数名():
代码
三种定义函数的方式
空函数
有参函数
无参函数
函数的调用
函数名()
函数的返回值
- return会返回一个值,默认返回None
- return会终止函数
- return会返回多个值
函数的参数
形参
接收实参,具有描述意义
位置形参
从左到右依次接收位置实参
默认形参
- 具有默认值 2. 默认形参必须得放在位置形参后面
实参
传值给形参,具有具体的值
位置实参
从左到右依次给位置形参传值
关键字实参
- 按照形参名传值 2.关键字实参必须得放在位置实参后面
可变长参数
*
*形参
用元组接收多余的位置实参,
*实参
打散列表,然后以位置实参传给位置形参
**
**形参
用字典接收多余的关键字实参
**实参
打散字典,然后以关键字实参传给位置形参
*形参**形参
接收所有的多余的参数
函数对象
引用
作为容器类元素
作为函数参数
作为函数的返回值
函数嵌套
def
def
外面不能引用函数内部定义的函数
名称空间与作用域
内置名称空间
放内置方法
全局名称空间
除了内置和局部就是全局
局部名称空间
函数内部的定义的变量/函数
执行顺序
内置 --》 全局 --》 局部
搜索顺序
从当前位置开始 局部 --》 全局 --》 内置 --》 报错
全局作用域
全局作用域的 x 和局部作用域的 x 没有半毛钱关系,可变数据类型除外
局部作用域
局部作用域1的 x 和局部作用域2的 x 没有半毛钱关系
global
局部的可以修改全局的
nonlocal
局部的修改外层局部的
legb原则
原文地址:https://www.cnblogs.com/samoo/p/11571634.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux系统中 /etc/fstab 文件的深入解读
- bash命令使用详解
- 实例详解Linux 中的命令链接操作符
- Python 为什么不支持 switch 语句?
- centos安装jdk1.8时出现没有/lib/ld-linux.so.2:这个文件的原因分析
- Linux多线程编程快速入门
- Linux添加swap分区的方法
- linux下vsftpd的安装及配置使用详细步骤(推荐)
- Linux分区格式化的命令
- Linux调试工具GDB使用简易教程
- Linux 挂载分区的方法
- 使用Python生成Shell命令,批量执行程序代码解析
- 基于Ubuntu 18.04配置固定IP的方法教程
- 详细解读linux下swap分区的作用
- Linux下将源文件编译成目标文件的过程解析