9.12小结
计算机基础之编程
什么是编程语言
人与计算机交流的介质
什么是编程
编写一大堆文件
为什么要编程
代替劳动力
计算机五大组成
CPU
控制器(一)
控制硬件
运算器(二)
算术运算+逻辑运算
存储器(三)
主存(内存)
优点:速度快
缺点:容量小,断电即消失
外存(硬盘)
优点:容量大,永久存储
缺点:速度慢
输入设备(四)
输入信息,如键盘/鼠标/
输出设备(五)
输出信息,如显示屏/打印机
32位和64位
计算机一次性读取的二进制位位数
多核CPU
同一时刻同时做多件事情(多进程)
机械硬盘工作原理
机械手臂
读取数据
磁道
存储数据
扇区
划分磁道
平均寻道时间
5ms
平均延迟时间
4.15ms
平均寻找数据时间
9.15ms
计算机操作系统
什么是文件
操作系统提供的虚拟单位
操作系统有什么用
把对硬件的复杂操作简单化
操作系统的启动
- 开机,启动临时操作系统
- 临时操作系统启动真正的操作系统
- 关闭临时操作系统
应用程序的启动
- 双击qq(给操作系统发指令)
- 操作系统给CPU发指令
- CPU给内存发指令
- 内存给硬盘发指令读取qq内容
- 内存读取qq内容
- 启动qq
编程语言的分类
机器语言
优点:执行速度快
缺点:开发效率低
汇编语言
优点:开发效率高
缺点:执行效率低
高级语言
编译型语言
优点:执行效率高
缺点:开发效率低
解释型语言
优点:开发效率高
缺点:执行效率低
网络瓶颈效应
网络通信的延迟时间远远大于计算机执行程序的时间
python执行程序的两种方式
交互式
优点:方便调试bug
缺点:无法保存
命令行式
优点:可以保存
缺点:调试麻烦
变量
什么是变量
描述世间万物的变化的状态
变量的三大组成
变量名(接收变量值) = 变量值(具体的值)
变量名的命名规范
- 变量名具有描述意义
- 由数字/字母/下划线组成,不能由数字开头,下划线开头表示不要
_name
- 不能以关键字命名
变量名的两种形式
- 下划线(推荐使用)
- 驼峰体
常量
常量名全大写,但是可以变化(约定俗成的不变化)
python变量内存管理
引用计数
针对变量值而言,变量值的引用次数
垃圾回收机制
变量值的引用计数为0,自动触发垃圾回收机制,解除变量值的内存占用
小整数池
[-5,256]之间的整数,在python解释器启动的时候,就会自动生成,也就是说垃圾回收机制对他们无效
变量的三种打印方式
x = 10
print(x)
print(id(x))
print(type(x))
花式赋值
链式赋值
a = b = c = 10
交叉赋值
x , y = y, x
布尔类型
所有数据类型自带布尔值,除了 0/None/空/False
自带布尔值为False,其他为True
解压缩
一次性接收多个值
lt = [1, 2, 3]
s1, s2, _ = lt
python与用户交互
input的使用,接收的值永远为字符串
格式化输出的三种方式
f-string格式化
f'{name}'
%占位符
'%s'%(name)
format格式化
'{}'.format(name)
基本运算符
算术运算符
+ - * / // % **
逻辑运算符
- and 两边都为True,则为True
- or 一边为True,则为True
- not 否定
比较运算符
< <= > >= == !=
身份运算符
- is 比较内存地址
- is not
成员运算符
- in 判断元素是否存在容器类元素内部(包括字符串)
- not in
赋值运算符
= += -= *= /= **= %= //=
x += 10 # x = x + 10
运算符的优先级
要优先的加个括号就行了
流程控制之if判断
单分支结构
if 条件:
代码块
双分支结构
if 条件:
代码块 条件成立走这个
else:
代码块 条件不成立走这个
多分支结构
if 条件:
代码块 条件成立走这个
elif 可以有多个
else:
代码块 条件不成立走这个
流程控制之while循环
while + break
中断循环
while + continue
退出本次循环,不执行下面的代码,进行下一次循环
while + else
不被break中断就执行else缩进下的代码
tag控制while退出
while tag(count < 3):
pass
流程控制之for循环
for + break
中断循环
for + continue
跳出本次循环,不执行下面代码,开始下一次循环
for + else
没有被break掉,就执行else缩进下的代码
数字类型内置方法
整型
浮点型
字符串内置方法
优先掌握
- 索引取值
- 索引切片
- for循环
- 成员运算
- len长度
- strip
- split
需要掌握
- rstrip/lstrip
- rsplit
- lower/upper
- startswith/endswith
- isdigit/isalpha
了解
- find/rfind/index/rindex/count
- center/ljust/rjust/zfill
- expandtabs
- capital/swapcase/title
- is系列
列表内置方法
优先掌握
- 索引取值/索引修改值
- 索引切片
- for循环
- 成员运算
- len长度
- append
- del 删除某一个元素
需要掌握
1. sort
2. reverse
3. pop
4. remove
5. index
6. insert
7. extend
8. copy
9. clear
有序or无序
有索引,有序;无索引,无序
可变or不可变
可变:值变id不变
不可变:值变id变化
- 浏览一遍
- 抄一遍(把不会的挑出来)
- 把不会的看看博客,弄懂
- 再抄一遍
- 再抄一遍
- 再默一遍
9/16早上起来再默一遍
没过就10遍
leetcode对未来的应用没有意义,就是提升你的逻辑思维(和数据结构与算法狗屁关系都没有,遇到就跳过)