冯诺依曼体系架构:cpu(运算器、控制器)、输入设备、存储器、输出设备
cpu把所需要的数据放入内存,写出的数据放入内存,cpu不直接与磁盘打交道
cpu中有寄存器和多级缓存
python的语言类型
python是动态语言(不用事先声明,随时赋值为其它类型,但是编程时不知道什么类型,不好判断)、强类型语言(不同类型间操作,必须先强制类型转换为同一类型)
了解python解释器
cpython(c语言编写)、pypy(puthon语言编写)
程序
算法+数据结构=程序 (算法是处理数据的方式,有优劣之分)
python基础语法
整数不区分long和int类型
浮点数有精度的要求
\ 是转义字符
r 能让字符串内所有的字符当普通字符对待
\t 是制表符(对齐)
\(换行符)后只能回车换行
Python中没有常量、也无法定义常量
运算符
算术运算符:+ - * / %(取模) //(取整) **(指数)
位运算符:&(按位与)、 |(按位或)、~(按位异或) 、^(取反) 、<< 、>>
比较运算符:== 、!= 、> 、<
逻辑运算符:ture or false
Python中赋值即定义
python不需要关心内存的管理
当对象引用数为0,它就会被垃圾站回收,函数运行结束,局部变量会被自动销毁
程序控制
按照先后顺序一条条执行
单分支结构:if语句
False等价布尔值 相当于bool:空容器(空集合set、空字典dict、空列表list、空元组tuple)、空字符串、None对象、0
多分支结构:
if condition1:
elif condition2:
elif condition3:
…
else:
while循环
for循环
continu:影响当次循环
break:结束本层循环
数字的函数处理
math.floor: 往下取整
math.ceil:往上取整
int:只取整型
round:四舍六入五取偶
//:整除是向下取整的方式
min:取最小
max:取最大
math.sqrt:开平方
bin(转化为二进制)、oct(转化为八进制)、hex(转化为十六进制)
练习(非最优解)
在这里插入图片描述
类型判断
type:返回类型,而不是字符串
isinstance:返回布尔值
列表list
(线性的数据结构,可变的)
列表:顺序结构、连续的内存空间,适合查找,能增删但效率最低、在尾部高效
l1=[]
l2=list[]
l3=list(range())
链表:顺序结构、不连续的内存空间,适合增删,不易查找
queue队列:顺序结构、不提供中间插入,只能首尾操作
stack栈:后进先出
遍历:把元素从列表一个个查找叫遍历,遍历的对象不一定有顺序 `O():指时间复杂度
索引:不可以超界 O(1)
index:对象在第几个,匹配到第一个就返回O(n)
count:返回匹配到的次数O(n)
len():返回列表的长度O(1)
列表增加、插入元素
*append(追加)O(1 )返回None
insert(序号,内容)(插入)超界首或者尾追加O(n) 返回None
extend 讲可迭代的元素追加进来、就地修改
列表删除元素
remove(value)->None
pop([index])->item
clear()->None
其它操作
reverse()->None :将列表反转、就地反转
sort(key=None,reverse=False):对列表进行排序,就地修改 默认升序,返回None
in:
shadow copy 1222221:浅拷贝 遇到应用类型,只是复制了一个引用而已
tuple(元祖):不能增删改,只能跟list一样查
命名元祖(namedtuple):from collections import namedtuple(需要导入)
字符串
字符串是不可变对象,连续存放
字符串可以索引、也可以遍历
" ".join:将可迭代对象(字符串)连接起来
split() :切割符,立即返回列表(可迭代对象,可以进行循环操作)
‘’.partition:只切一刀,切割返回三元组,显示切割符
字符串大小写
返回新字符串
Upper()大写
Lower()小写
Sapcase()小写互换
title():每个单词
capitalize:首个单词大写
center
字符串修改
Replace(,):替换,所有的修改会替换为新字符串
Strip():去除指定字符集的所有字符,如果没有指定,去除两端空白字符
Find:返回小于0说明没找到(index, in找不到出现异常)
Stardswith、endswith O1
.is__
字符串格式化
%d :后跟数字
%s :跟字符串
%f:显示浮点数
建议使用format函数格式化
format函数:
bytes:字节组成的不可变字节序列
bytearray:字节组成的可变序列
数字跟字符串一定要分割开来
文本看字符 二进制看字符
ASCLL