一.number型数据有:int bool float complex(复数)
容器型数据: tuple list dict str set
一.三引号
可以支持多行输出不用换行符
二.r“字符串内容”
可以将特殊字符原样输出,而不用转义,应用场景是文件的路径和用户输入
eg:r“/xammp/MySQL/bin”
三.字符串(即可看做number型又可看做容器型)
str有序(可用下标获取),不能改变
四.元组的运算符 “ ,” 元组中只有一个元素时要加逗号,否则类型为该元素类型
注意:a = (1) a的type是Int 而不是tuple
应该这样 a = (1, )
a = 1,2 与 a = (1,2)等价均为tuple
五.哈希算法
哈希算法只针对不可变类型
可哈希数据:number (int float bool complex)str tuple
不可哈希数据:list dict set
定义:将一个不可变的数据按照一个算法将产生一个固定长度唯一对应的数
应用:用于加密,且加密后不可逆
字典的键和集合的值都是唯一的,不可重复的:
用哈希算法保证唯一性
用哈希算法加密字典的键获得一个字符串
用哈希算法加密集合的元素获得一个字符串
在Python3.6之后字典的键会在打印前与之前的键的顺序进行核对,从而给用户感觉有序了。
六.集合
空集合 set() { }#这个是空字典
集合中的元素必须为不可变类型
eg:a = {1,2,'~h', ([1,2])}error 只要有不可变元素都会报错,无论它以什么形式存在
七.变量的缓存机制(对同一Python文件)
1. int :-5~正无穷 当数值相同 地址会相同,即一个数据两个变量同时指向它,ID号相同
2. float:非负数 相同则 ID号相同
3. bool:数值相同 ID号相同
4. complex:在 实部 + 虚部 这样的结构中都不相同(除了只要虚部的情况)
5. 对相同的str 和 空元组 ID号相同
6 .list set dict tuple(除空元组)无论如何ID号都不会相同
以上是同一文件
不同文件:
有一个数据池
可以指定驻留,即添加到数据池中无论声明多少个变量,只要值相同,就指向同一给地址
#从sys模块中引入intern函数 让a,b变量指向同一个值
可以指定任何字符串加入到小数据池中,无论shen'ming
from sys import intern a = intern("大帅锅 的风景和"*10) b = intern("大帅锅 的风景和"*10) print(a is b)
八.数据类型的自动转换,从低精度向高精度转
number:bool<int<float<complex
九.强制转换
Numberr部分:
int :int float bool 纯字符串数字
float:int float bool 纯字符串数字
complex:int float bool 纯字符串数字(复数)
bool:(容器类型数据 / number型数据 都可)
布尔类型为假的十种情况:
0,0.0 ,0j ,False , '' , () , set() , {} , [] , None
容器数据部分:
1.str: (容器类型数据 / number型数据 都可) 相当与 repr 可以原型化输出字符串,不转移字符
2. list: 字符串 列表 元组 集合 字典
3. tuple 字符串 列表 元组 集合 字典
4.set 字符串 列表 元组 集合 字典 (相同的值只会保留一份)
5. dict 使用 二级列表 二级元组 二级集合进行转换 二级集合中只能有元组类型
强制转换成字典是,必须为等长的二级容器,同时元素个数必须为二
(1)外层是列表,里面是列表或元组(推荐使用)或者 字符串,集合(不推荐,当字符串长度超过2会报错 如 name123,集合中的键值无法确定)
(2)外层是元组,里面是列表或元组(推荐使用)或者 字符串,集合(不推荐,当字符串长度超过2会报错,集合中的键值无法确定)
(3)外层是集合 ,里面的容器只能是元组
注意:
元组中有可变类型如 list 列表中的元素可以改变
等长的二级容器,每一个容器里面的元素个数都相同