P1 总复习

计算机之编程

什么是编程语言

人与计算机交互的介质

什么是编程

人通过编程语言将想要做的事写成一个个文件

为什么要编程

奴役计算机,代替人完成任务,解放劳动力

计算机组成原理

计算机五大组成部分

cpu(控制器和运算器)
内存
外存
输入设备
输出设备
I/O设备

32位和64位

32位:一次可以读取32个二进制的操作系统
64位:一次可以读取64个二进制的操作系统

多核cpu

同时可以执行多个任务的CPU

硬盘的工作原理

机械硬盘
    机械手臂:读取数据
    磁道:存储数据
    扇区:划分磁道
    平均寻道时间:工业水平限制5ms
    平均延迟时间:7200转硬盘为4.15ms
固态硬盘
    通过算法和电存储数据

计算机之操作系统

什么是文件

操作系统中的一个虚拟单位

什么是应用程序

应用程序由文件组成,用来完成具体的任务

操做系统干了什么

接收外部指令,指挥硬件

计算机由什么组成

应用程序:用来完成具体的任务,与用户\操作系统交互
操作系统:接收外部指令,转换成0和1发送给cpu,与用户,应用程序和硬件交互
硬件:存储和操作数据,与应用程序交互

应用程序和操作系统的启动流程

应用程序:
    1. 点击应用程序,发送指令给操作系统
    2. 操作系统将指令转换成0和1发送给cpu
    3. cpu发送指令给内存
    4. 内存从外存中调取应用程序的数据,加载到内存中,运行
操作系统:
    1. 打开电源,启动一个临时的操作系统
    2. 临时操作系统唤醒真正的操作系统

编程语言

机器语言

汇编语言

高级语言

解释型
编译型

执行python程序的两种方式

交互式
命令行是

执行python程序的两种IDE

pycharm和jupyter

变量

什么是变量

用来描述事物变化状态

变量有什么组成

变量名 赋值符号 变量值

变量名的命名规则

1. 变量名的定义必须具有某种意义
2. 必须有字母数字下划线组成,首字符不能是数字和下划线
3. python关键字不能用作变量名

变量名的两种定义方式

1. 驼峰体(单词首字母大写)
2. 下划线(下划线区分单词)

变量的三个属性

变量值 ID 数据类型

什么是常量

固定不变的量,约定常量的变量名全部为大写字母数字和下划线,实际上常量的值可以改变

注释

1. 单行注释 #
2. 多行注释 ''' 和"""

内存管理

引用计数

变量值被引用的次数

垃圾回收机制

当一个变量值的引用计数为0时,python会清除这个变量值的内存空间

小整数池

[-5,256]这些整数在python启动时会被单独划分一个内存空间,不会被垃圾回收机制清除

数据类型

整型:int
浮点型:float
字符串:str
列表:list
字典:dict
布尔:bool

用户交互input

接收到的数据类型都是字符串

格式化输出

%s 占位符

%s可以是任意数据类型 %d只能是数字类型 字符串后面跟 %(变量)

format格式化

{}可以是任意数据类型,字符串后跟 .format(变量)

f-string格式化

{}可以是任意数据类型,字符串前面f或F

基本运算符

算数运算符
+ - * / % //
比较运算符
> < == >= <=
逻辑运算符
and or not
赋值运算符
= += -+ *= /=
身份运算符
is is not
成员运算符
in not in
运算符的优先级
指数运算级最高,其余需要优先运算的用()
链式赋值
x=y=z=10
交叉赋值
x,y=y,z
解压缩
_,list1,list2,*_=list[1,2,3,4,5,6]

流程控制

if判断

if
if else
if elif else
if的嵌套

while循环

while
while break 结束本层循环
while continue 结束当前循环进入下一次循环
while else 当没有被break的时候执行else的代码
while的嵌套

for循环

for
for break 结束本层循环
for continue 结束当前循环进入下一次循环
for else 当没有被break的时候执行else的代码
for的嵌套

数据类型的内置方法

整型

1. 作用:描述年龄\id\银行卡号
2. 定义方式:x=10
3. 方法:基本运算符
4. 一个值or多个值:一个值
5. 可变or不可变:不可变
6. 有序or无序:没有有序无序之说

浮点型

1. 作用:薪资\价格
2. 定义方式:salary=2.5
3. 方法:基本运算符
4. 一个值or多个值:一个值
5. 可变or不可变:不可变
6. 有序or无序:没有有序无序之说

字符串

1. 作用:描述名字\地址等
2. 定义方式:name='nick'
3. 方法:
    1.优先掌握
        1. 索引取值
        2. 两端去空白strip
        3. 切片
        4. 切分split
        5. 长度len
        6. 成员运算 in/not in
        7. for循环
    2.需要掌握
        1. lstrip/rstrip左/右去空白
        2. rsplit右切分
        3. upper/lower大写/小写
        4. startswith/endswith以...开始/结束
        5. join拼接
        6. replace替换
        7. isdigit是否为数字
    3.了解
        1. find/rfind/index/rindex/count
        2. center/ljust/rjust/zfill
        3. expantabs
        4. capitalize/swapcase/title
        5. is系列
4. 一个值or多个值:一个值
5. 可变or不可变:不可变
6. 有序or无序:有序

列表

1. 作用:存放多个值
2. 定义方式:[]内用逗号分隔多个元素,这些元素可以是任意数据类型
3. 方法:
    1. 优先掌握
        1. 索引取值
        2. 长度len
        3. 成员运算in/not in
        4. for循环
        5. 追加append
        6. 切片
    2. 需要掌握
        1. count查找指定元素个数
        2. pop按照指定索引删除,默认删除最后一个
        3. insert在指定索引前插入元素
        4. index获取指定元素的索引值,只获取第一次
        5. extend扩展,将extend()内的元素加入原列表
        6. remove移除元素,如果不存在则报错
        7. clear清空列表
        8. copy复制
        9. reverse反转列表
        10. sort排序列表
4. 一个值or多个值:多个值
5. 可变or不可变:可变
6. 有序or无序:有序

元祖

1. 作用:存放多个值,只能取不能修改
2. 定义方式:()内用逗号分隔多个元素,这些元素可以是任意数据类型
3. 方法:
    1. 索引取值
    2. 切片
    3. 长度len
    4. 成员运算
    5. for循环
    6. count获取指定元素的个数
    7. index获取指定元素的索引值
4. 一个值or多个值:多个值
5. 可变or不可变:没有可变不可变之说
6. 有序or无序:有序

字典

1. 作用:存放多个值,当读取不方便的时候我们使用字典
2. 定义方式:{}内用逗号分隔元素,每个元素都是key:value的形式,key因为具有描述性质,通常为字符串,value可以是任意类型数据
3. 方法
    1. 优先掌握
        1. 按key取值
        2. 长度len
        3. 成员运算in\not in 仅比较key
        4. 删除del
        5. 键keys()值values()键值对items()
        6. for循环
    2. 需要掌握
        1.get如果键不存在,返回none,同事可以给定默认值 
        2.update有就更新,没有就添加
        3.fromkeys吧给定列表内的元素取出来作为key,然后使用一个默认的value组成一个字典
        4.setdefault如果字典中有这个key,则不变,否则添加
4. 一个值or多个值:多个值
5. 可变or不可变:可变
6. 有序or无序:无序

集合

1. 作用:存放多个值,元素不能重复
2. 定义方式:{}内逗号分隔元素,集合内的元素是无序的不可重复的不可变类型数据
3. 方法
    1. 优先掌握
        1. 去重
        2. 并集 | union 两个集合中的所有元素并且去重
        3. 交集 & intersection 两个集合中共有的元素
        4. 差集 - difference A集合中且B集合中没有的
        5. 对称差集 ^ synnetric_difference 并集减去差集的元素
        6. 父集 > >= issuperset A包含B
        7. 子集 < <= issubset B包含A
        8. == 两个集合元素相同
        9. 长度len
        10. 成员运算 in/not in
    2. 需要掌握
        1. add添加元素
        2. remove移除元素,如果不存在则报错
        3. discard移除元素,不会报错
        4. difference_update
        5. isdisjoint 集合没有共同部分返回True 否则返回False
4. 一个值or多个值:多个值
5. 可变or不可变:可变
6. 有序or无序:无序

布尔类型

1. 作用:用于判断,除了0 None 空False的布尔值为空外,其他都为True

数据类型总结

一个值:整型/浮点型/字符串
多个值:列表/元祖/字典/集合
有序:字符串/列表/元祖
无序:字典/集合
可变:列表/字典/集合
不可变:整型/浮点型/字符串

拷贝/浅拷贝/深拷贝

三种拷贝方式仅针对于可变类型而言,如果是不可变类型发生了改变,则拷贝后的变量不会发生改变

拷贝:拷贝是复制了原对象的内存地址,所以当l1中可变类型发生变化的时候,由于id值没有变化,l2引用的索引还是这个可变类型,所以跟随一起变化

浅拷贝:浅拷贝是新建了一个内存地址,但复制了l1中元素的索引,所以当l1中可变类型发生变化的时候,由于id值没有变化,l2引用的索引还是这个可变类型,所以跟随一起变化

深拷贝:浅拷贝是新建了一个内存地址,但复制了l1中不可变元素的索引,新建了可变元素的索引,所以当l1中可变类型发生变化的时候,引用的不是相同的索引,因此不会发生变化

扫描二维码关注公众号,回复: 6274721 查看本文章

猜你喜欢

转载自www.cnblogs.com/masterjian924/p/10926564.html