目录
- 周总结
- 一 计算机基础之编程
- 二 计算机五大组成
- 三 计算机操作系统
- 四 编程语言的分类
- 五 网络瓶颈效应
- 六 python执行程序的两种方式
- 七 变量
- 八 常量
- 九 python变量内存管理
- 十 变量的三种打印方式
- 十一 花式赋值
- 十二 布尔类型
- 十三 解压缩
- 十四 python与用户交互
- 十五 格式化输出的三种方式
- 十六 基本运算符
- 十七 流程控制之if判断
- 十八 流程控制之while循环
- 十九 流程控制之for循环
- 二十 数字类型内置方法
- 二十一 字符串内置方法
- 二十二 列表内置方法
- 今日内容
- 流程控制之for循环
- 数字类型内置方法
- 字符串类型
- 列表内置方法
周总结
一 计算机基础之编程
(一) 什么是编程语言
人和计算机交流的介质
(二) 什么是编程
通过编程语言写一些文件
(三) 为什么编程
替代劳动力
二 计算机五大组成
(一) CPU
(1) 运算器
算术运算+逻辑运算
(2) 控制器
控制硬件
(二) 存储器
(1) 主存
优点: 速度快,断电即消失
缺点:内存小,
(2) 内存
优点: 内存大,永久存储
缺点:速度慢
(三) 输入设备
输入信息,键盘/鼠标
(四) 输出设备
输出信息,显示屏/打印机
(五) 32位和64位
计算机一次性读取的二进制位数
(六) 多核CPU
同一时刻同时做多件事情
(七) 机械硬盘工作原理
(1) 机械手臂
读取数据
(2) 磁道
存储数据
(3) 扇区
划分磁道
(4) 平均寻道时间
(5) 平均延迟时间
(6) 平均寻找数据时间
三 计算机操作系统
(一) 什么是文件
操作系统提供的虚拟单位,用来存储信息
(二) 操作系统有什么用
把对硬件的复杂操作简单化
(三) 操作系统的启动
- 启动临时操作系统
- 临时操作系统启动真正的操作系统
- 临时操作系统关闭
(四) 应用程序的启动
- 双击qq,给操作系统发送指令
- 操作系统给CPU发送指令
- cpu给内存发送指令
- 内存给外存发送指令,获取qq数据
- 内存读取qq数据
- qq启动
四 编程语言的分类
(一) 机器语言
优点:执行效率高
缺点:开发效率低
(二) 汇编语言
优点: 开发效率低
缺点:执行效率高
(三) 高级语言
(1)编译型语言
优点:执行效率高
缺点:开发效率低
(2) 解释性语言
优点:开发效率高
缺点:执行效率低
五 网络瓶颈效应
网络通信时间远远大于程序执行的时间
六 python执行程序的两种方式
(一) 交互式
优点:方便调试bug
缺点:无法保存
(二) 命令行式
优点:可以保存
缺点:调试麻烦
七 变量
(一) 什么是变量
描述世间万物变化的状态
(二) 变量的三大组成
变量名+赋值符号+变量值
(三) 变量名的命名规范
- 变量名要有描述意义
- 变量名由数字/字母和下划线组成,不能以数字开头
- 不能以关键字命名
(四) 变量名的两种命名方式
- 驼峰体
- 下划线
八 常量
常量名大写,但是可以变化(约定俗成的不变化)
九 python变量内存管理
(一) 引用计数
变量值的引用次数
(二) 垃圾回收机制
变量值的引用计数为0,自动触发垃圾回收机制,解除变量值的内存占用
(三) 小整数池
[-5,256]之间的整数,在python解释器启动的时候,就会自动生成,也就是说垃圾回收机制对它们无效
十 变量的三种打印方式
十一 花式赋值
(一) 链式赋值
(二) 交叉赋值
十二 布尔类型
所有数据类型自带布尔值,除了 0/None/空/False
自带布尔值为False,其他为True
十三 解压缩
一次性接收多个值
十四 python与用户交互
input的使用,接收的值永远为字符串
十五 格式化输出的三种方式
## (一) f-string格式化
(二) % 占位符
(三) format格式化
十六 基本运算符
(一) 算术运算符
+ - * / // % **
(二) 逻辑运算符
- and 两边都为True,则为True
- or 一边为True,则为True
- not 否定
(三) 比较运算符
< <= > >= == !=
(四) 身份运算符
- is 比较内存地址
- is not
(五) 成员运算符
- in 判断元素是否存在容器类元素内部(包括字符串)
- not in
(六) 赋值运算符
= += -= *= /= **= %= //=
(七) 运算符的优先级
十七 流程控制之if判断
(一) 单分支结构
(二) 双分支结构
(三) 多分支结构
十八 流程控制之while循环
(一) while + break
(二) while + continue
(三) while + else
(四) tag控制while退出
十九 流程控制之for循环
(一) for + break
(二) for + continue
(三) for + 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 删除某一个元素
(二) 需要掌握
- sort
- reverse
- pop
- remove
- index
- insert
- extend
- copy
- clear
(三) 有序or无序
有索引,有序;无索引,无序
(四) 可变or不可变
可变:值变id不变
不可变:值变id变化
今日内容
流程控制之for循环
for + break
for i in range(50,101,3): # 顾头不顾尾,2表示步长
if i == 53:
break # 中断循环
print(i)
for + continue
for i in range(50,101,3): # 顾头不顾尾,2表示步长
if i == 53:
continue # 跳出本次循环,不执行下面的代码
print(i)
for + else
for i in range(50,101,3):
if i == 1000:
break
print(i)
else:u
print('如果没有被break终止我就打印')
数字类型内置方法
整形+浮点型
+ - * / % // ** > >= < >= == !=
- 均为不可变类型
- 没有有序无序一说(有索引的就有序,无索引的就无序)
字符串类型
优先掌握
1. 索引
s = 'nick handsome'
print(s[1])
i
2. 索引切片
print(s[0:4]) # 顾头不顾尾
print(s[0:4:2]) # 2表示步长,隔一个取一个
print(1, s[4:0:-1]) # +从左到右,-表示从右到左
print(1, s[2:]) # 左边的不写取到最左边,右边的不写取到最右边
3. for循环
for i in s:
print(4, i)
4.成员运算
print('nick' in s)
print('nick1' not in s) # True
5. strip()
默认去除两端空格,可以指定去除的字符,可以指定多个字符同时去掉
s1 = 'a nick ******'
print(s1.strip())
print(s1.strip(' kc*')) # 可以乱序,但是不能没有
6. split()
s2 = 'nick|123658|180|140'
print(s2.split('|')) # 按照|切割字符串,得到的是一个列表
7. len()
s1 = 'nick handsome'
print(len(s1))
需要掌握
1. lstrip&rstrip
s3 = '**nick**'
print(s3.lstrip('*'))
print(s3.rstrip('*'))
2. lower&upper
s3 = 'Nick'
print(s3.lower()) # 小写
print(s3.upper()) # 大写
3. startwith&endwith
s4 = 'nick handsome'
print(s4.startswith('nick')) # 以。。。开始
print(s4.endswith('some')) # 以。。。结束
4. rsplit
s = 'nick|handsome|180|140|'
print(s.rsplit('|',1)) # 从右切割
5. join
lt = [1,2,3,4,5]
print('*'.join(lt))
6. replace
s = 'nick handsome'
s = s.replace('nick','nick chen')
print(s)
7. isdigit/isalpha
s = 'a123123'
print(s.isdigit()) # 判断字符串内字符是否都为数字
s = 'askdlfj234'
print(s.isalpha())
了解
1. find/rfind/index/rindex
s = 'nick handsome'
print(s.find('h')) # 找索引,-1表示没找到
print(s.rfind('h',6,10))
print(s.index('h'))
print(s.index('sadf')) # 找不到报错
2. center/ljust/rjust/zfill
s = 'nick'
print(s.center(50,'*')) # 居中
print(s.ljust(50,'*'))
print(s.rjust(50,'*'))
s = '111'
print(s.zfill(8))
3. expandtabs
# \n 换行
# \t 缩进
s = 'a\t\t\t\ta'
print(s)
print(s.expandtabs(18))
4. captalize/swapcase/title
s = 'nickNick handsome'
print(s.capitalize()) # 首字母大写
print(s.swapcase())
print(s.title()) # 每个单词的首字母大写
5. is系列
列表内置方法
优先掌握
1. 索引取值/索引修改值
lt = [1, 2, 3, 4]
print(lt[1])
2. 切片
print(lt[:])
print(lt[1:2])
print(lt[1:4:2])
3. for循环
for i in lt:
print(i ** 2)
4. 成员运算
print(1 in lt)
print(5 in lt)
5. len
print(len(lt))
6. append
# 追加
lt.append(5)
print(lt)
7. del
del lt[0] # 删除
print(lt)
需要掌握
1. insert
lt = [1, 2, 3, 4, 5]
lt.insert(0, 0) # 往前插入
print(lt)
2. pop
# pop:按照索引删除值
lt = [11, 22, 33, 44, 55]
lt.pop(0)
print(lt)
3. remove
# 按照值删除值
lt.remove(22)
print(lt)
4. count
lt = [11, 11, 11, 22]
print(lt.count(11))
5.index
print(lt.index(11))
6. clear
lt = [1, 2, 2, 3]
lt.clear()
print(lt)
7. copy
lt = [1, 2, 3, 4]
lt1 = lt.copy()
print(lt1)
8. extend
lt1 = [1, 2, 34]
lt2 = [1, 1, 2, ]
lt1.extend(lt2)
print(lt1)
9. reverse
lt = [1, 2, 3, 4]
lt.reverse()
print(lt)
10. sort
lt = [2, 3, 1, 0, 4]
lt.sort(reverse=True)
print(lt)