一、什么是数据类型?
数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。通俗讲就是给不同的对象进行分类。
数据类型包括原始类型、多元组、记录单元、代数数据类型、抽象数据类型、参考类型以及函数类型等等。
以上都是广义概念的数据类型。在Python的世界,数据类型分两种,内置的和自定义的。
内置的包括数字、字符串、布尔、列表、元组、字典、Bytes、集合这些常用的以及一些不太常用的数据类型。
而自定义的,一般以类的形式,根据需要组合以上内置类型成为独特的数据类型。
二、为什么编程语言要设置不同的数据类型?
原因之一,更好的分配管理内存,节省不必要的开支。如果没有数据类型的区别,那么所有的对象都必须按体积最大的对象所必须大小的房子分配空间,也就是内存空间,这样的浪费太严重了。有了数据类型,计算机就可以根据类型预定义的空间需求分配大小,合理开支。内存节省精简了,还能提高读取速度和运行效率。
原因之二,方便统一管理,提供同样的API。这样,我们可以为同一数据类型,提供同样的操作,限制其它不允许的行为。也易于查找错误,定位问题。
原因之三,区分数据类型,更贴切人类对自然事物的分类管理习惯。我们人类对事物都进行了各种分类,植物是植物、动物是动物,书是书,笔是笔。分类了之后,我们很自然的知道书可以读,笔可以写。数据类型也一样,让我们对抽象的数据有了可分辨的行为和自然的记忆。
数据类型是Python语言非常重要的部分(哪部分不重要?),尤其是不同数据类型所支持的原生操作,更是重中之重,需要熟练的背在脑海里。很多时候,写大型项目时,不需要多复杂的技巧,只需要用这些数据操作方法就可以。
三、数据类型 - 数字
数字类型用于存储数学意义上的数值。
数字类型是不可变类型。所谓的不可变类型,指的是类型的值一旦有不同了,那么它就是一个全新的对象。数字1和2分别代表两个不同的对象,对变量重新赋值一个数字类型,会新建一个数字对象。强调一下Python的变量和数据类型的关系,变量只是对某个对象的引用或者说代号、名字、调用等等,变量本身没有数据类型的概念。类似1,[2, 3, 4],“haha”这一类对象才具有数据类型的概念。
例如:
a = 1 # 创建数字对象1。
a = 2 # 创建数字对象2,并将2赋值给变量a,a不再指向数字对象1。
这里,发生了变化的是变量a的指向,而不是数字对象1变成了数字对象2。
Python 支持三种不同的数字类型,整数、浮点数和复数。
四、数据类型 - 字符串
字符串是Python中最常用的数据类型之一,使用单引号或双引号来创建字符串,使用三引号创建多行字符串。字符串要么使用两个单引号,要么两个双引号,不能一单一双!Python不支持单字符类型,单字符在Python中也是作为一个字符串使用。
字符串是不可变的序列数据类型,不能直接修改字符串本身,和数字类型一样!Python3全面支持Unicode编码,所有的字符串都是Unicode字符串,所以传统Python2存在的编码问题不再困扰我们,可以放心大胆的使用中文。
但是单引号嵌套单引号或者双引号嵌套双引号就会出现歧义。
虽然字符串本身不可变,但可以像列表序列一样,通过方括号加下标的方式,访问或者获取它的子串,当然也包括切片操作。这一切都不会修改字符串本身,当然也符合字符串不可变的原则。
五、字符串内置方法
字符串是Python中和列表、字典同样重要的数据类型,对它的操作特别多,因此内置了很多方法。每当你要处理字符串的时候,不妨来这里查查,或许就有原生的方法,不用自己去写。