Number数字类型(int float bool conplex)
int整型 (正整数 0 负整数 )
type获取类型
id 获取地址
二进制0b
八进制0o
十六进制0x
float 浮点型(小数)
表示1:小数 表示2:科学计数
bool布尔型 (True真的 False假的)
complex复数类型
复数:实数+虚数 如3+5j
j:如果有一个数,它的平方等于-1,那么这个数是j,科学家认为有,表达高精度的类型,
j这个字符不能乱改
容器类型(str list set dict)
str字符串 特征:可获取不可修改有序
1定义字符串
两边套上引号的就是字符串
转义字符
可以把无意义的字符串变成有意义的
可以把有意义的字符串变成无意义的
\n换行
\r\n 换行
\t 缩进水平制表符
\r把后面的字符直接拉到前面做行首(如进度条功能内使用到的用法)
1单引号
2双引号
可以把无意义的字符串变成有意义的
可以把有意义的字符串变成无意义的
3三引号
支持跨行
4元字符串
不转义字符原型化输出字符串
在不转义的字符前面加小写r
5字符串的格式化
%d整型占位符
%2d宽度占2位,不够两位拿空位来补,原字符居右
%-2d宽度占2位,不够两位拿空位来补,原字符居左
%f浮点型占位符
自动保留6位小数
%.2f 保留两位小数存在四舍五入
%s字符串占位符
语法:"字符串"%(值1,值2...)
2获取元素
正向索引
逆向索引
3不能修改元素
list列表 特征:可获取可修改有序
1定义列表
空列表 listvar = []
普通列表
2获取列表中的元素
正向索引
逆向索引(python特有的)
获取列表中的最后一个元素
len通用写法
-1取值最后python特有写法
3修改列表中的元素
通过索引方向替换对应标示位置的元素
tuple元组 特征:可获取不可修改有序
1定义元组
空元组()
普通元组
正向索引
逆向索引
2获取元组中的数据
通过索引
3不可以修改元组中的数据
4逗号才是区分是否是元组的标识符
set集合 特征:无序自动去重
[交差并补]
1定义一个集合
2无序
不可获取,不可修改
3自动去重
4注意点:定义一个空集合
setvar = set()
dict 字典 特征:键值对存储方式,表明有序,存储时无序
1定义空字典
{}
普通字典
2获取字典中的值
3修改字典中的值
4注意点:
字典的键以及集合的值,有数据类型上的要求,需要是不可变的数据类型,字典的值没有数据类型上色要求
不可变类型:int float bool complex str tuple (不可以抽取,里面的元素出来)
可变类型:list set dict (可以抽取,里面的元素出来)
了解:
提到哈希算法一定是无序的,通过哈希算法只能计算不可以改变的数据
哈希算法的提出是为了,均匀的在内存当中分配存储数据,提高存储的效率
字典和集合是通过哈希算法分配存储(相应的就会要求,数据必须是可哈希的)
哈希碰撞,哈希冲突. 部分位置已有数据,又继续存放到了这个位置,找存储位置的过程,降低了存储效率
补充:取模,取余的算法,所以需要是确定不可改变的数据.
变量的缓存机制
1number部分
1对应整数来说,-5~正无穷范围内的相同值,id一致
2对于浮点型而言,非负数范围内的相同值,id一致
3布尔值而言,值相同的情况下,id一致
4复数在 实数+虚数 这样的结构中永不相同(只有虚数的情况例外)
2容器类型 部分
5字符串和空元组相同的情况下,地址相同
6列表,元组,字典,集合无论什么情况下,id标识都不同**[空元组例外]**
总结:
无论是变量的缓存机制,还是小数据池
都是为了,减少空间上的损耗,提升代码的效率
补充:
小数据池:不同文件(模块)里,部分数据驻留在小数据池中,让两个变量的值都同时指向一个值的地址,节省空间