Python数据结构之数据类型介绍
数据类型介绍
-
什么是数据
-
为何要数据分不同的类型
-
数据有哪些类型
-
五大数据类型基本划分
一、什么是数据
在计算机科学中,数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字字母、符号和模拟量等的统称。现在计算机存储和处理对象十分广泛,表示这些对象的数据也随之变得越来越复杂。
二、为何要数据分不同的类型
数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示
举个例子:
在游戏当中你会有你的自己的人物、装备、等级、金钱等等、这些都是数据,在Python中这些数据都有自己各自的类型。
例如用cs来说
名字:帝皇侠传说------------------------>字符串
金钱:88888888 --------------------------------->数字
装备:毁灭,闪光弹,防弹衣 --------->列表
击杀数:999999 --------------------------------->数字
等等,还有很多其他类型的数据,处理不同类型的数据就需要定义不同的数据类型
数据结构的意义:
数据结构的意义:将上述五大数据类型整合到一起。但是掺到一起不是目的。目的是能够组合成一个好的结构,方便自己或者他人进行数据存储或者读取。
三、数据有哪些类型
数字(整型,长整型,浮点,布尔,复数)
1.整数:根据字面的意思俩理解就没有小数点的数
2.长整数:就是很长的整数
3.浮点型:就是带小数点的数字
4.布尔型:True与False(1和0)
5.复数: 复数有实数部分和虚数部分组成,一般形式为x+yj,其中x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数
注意,虚数的大小写字部分的字母j不分大小写
字符串
在python如何定义一串字符为字符串呢?
用 " " 、' ' 、''' '''或者""" """。中间包含的部分称之为字符串
注意:即使里面写入的是数字,那么他的数据类型也是字符串;字符串是不可改变的
常见的字符串操作有:
移除空白、分隔、长度、索引、切片等等;
列表
定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素
常见的操作有:
增加、插入、删除、查询、切片、索引、长度等
元组
以'()'圆括号进行定义,与列表极其相似。也是序列类型 可以进行索引,切片,查询,也可以进行遍历
元组与列表的唯一区别则是不可改变
常见的操作有:
索引、切片、循环、长度、包含
字典
字典占用的内存空间将会大于列表,在系统中要保存一个hash列表(用系统内存换取时间)
字典属于key:value 结合(key值是不可变的,value值可以变)并且是无序的
集合
定义:由不同的元素组成的集合,集合中是一组无序排列的可hash值,可作为字典的key,而且集合中的值不可重复。
特性:集合的目的就是将不同的值存放在一起,不同的集合间来做关系运算,无序纠结集合中单个值
集合包括可变集合和不可变集合
hash是什么?
打个比方,比如说有一个文件(不管多大),对这个文件要进行一个hash校验,会得到一个校验值(固定长度)。
hash是一种统称,具体要进行校验的话,是需要调用它下面的算法。(校验就是通过一个算法算出这个文件的一个值)。
特点:
1.只要用的算法是一定,那么得到的值的长度永远是一定的
2.原值(被校验的值)只要改一点,那么在此校验的值将会改变
3.不可逆。不可能通过一串hash值来推导出这个文件内容
算法:MD5 SH512等等
用途:最多的用途就是进文件校验(看文件是否被篡改)。再一个就是tcp/ip协议。只能对不可变的值进行hash校验。如果集合中有可变类型那么回保错。
注意:
列表是不可hash类型;在python中,看到不可hash类型就是可变类型,反之,可hash类型就是不可变类型
四、五大数据类型基本划分
按照存储数据个数区分
标量/原子类型(值能存放一个值) | 数字,字符串 |
容器类型(存放多个值) | 列表,元组,字典 |
按照可变不可变区分
可变类型指的是在同一块内存地址之上可以将值替换掉(使用id()函数查看变量的内存地址)
可变 | 列表,字典 |
不可变 | 数字,字符串,元组 |
按照访问顺序区分
直接访问(不可拆分) | 数字 |
顺序访问(有下标的) | 字符串,元组,列表 |
key值访问(映射类型) | 字典 |