一、什么是数据类型
数据类型是一组具有相似属性的一类数据的集合,数据类型决定了其存储到计算机中的方式。将数据进行类型划分,是为了更方便的处理数据。比如:你想让计算机进行数值运算,你就传数字给它,你想让它处理文字,就传字符串给它。python中的基本数据类型包括:数字类型、字符串类型、列表类型、元组类型、字典类型、集合类型、布尔类型,一共七种。
二、数字类型
(1)int(整型)
在64位系统中,整数的位数位64位,取值范围-263 ~ 263 -1。
(2)long(长整型)
跟C语言不同,python的长整型没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于及其内存有限,我们使用的长整型数值不可能无限大。
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整型,所以如今在长整数数据后边不加字母L也不会导致严重后果。在python3里不再有long类型了,全都是int
a = 2**65
print(type(a))
b= 2**60
print(type(b))
在phthon3环境中,得到的结果均为。
(3)float(浮点型)
即小数,如1.111,2.333等
三、字符串
在python 中,加了引号(" ",' ',''' ''')的字符都被认为是字符串。
age = "22" #只要加引号就是字符串
age = 22 #不加引号为int
msg = '''My name is alex, Iam 22 years old''' #三个引号也可以
hometown = 'Shandong' #单引号也行
单引号、双引号、多引号有什么区别呢?
单引号和双引号没有任何区别,只有在特殊情况下,需要配合使用,比如:
msg = "My name is alex, I'm 22 years old!"
多引号的区别在于,多引号可以容纳多行字符串,比如:
msg = '''床前明月光,
疑是地上霜,
举头望明月,
低头思故乡。'''
四、布尔类型
布尔类型很简单,就两个值,一个真True,一个假False,主要用于逻辑判断。比如:
a = 3b= 5
print(a>b)
结果:Falseprint(a
结果:True
计算机为什么需要描述这种条件呢?因为可以通过这种条件结果来进行不同的操作!比如:
if a >b:print(a isbigger than b)else:print(a is smaller than b)
五、列表类型
列表(List)是一种数据项构成的有限序列,即按照一定的线性序列,排列而成的数据项的集合。在python中,用中括号[ ]来表示列表。列表中的每一个数据叫做元素,元素和元素之间用逗号","隔开,每一个元素都有自己的下标,下标从0开始,每添加一个元素,就会自动+1。比如:
name = ['alex', 'jack', 'rain', 'rachel', 'mack']
它在计算机中的存储形式可以形象的表示为:
元素名
alex
jack
rain
rachel
mack
下标(索引)
0
1
2
3
4
想要获到列表中某个元素的值,只需要通过下标或索引就能拿到,比如:
>>: name[0]'alex'
>>:name[4]'mack'
六、元组
元组(Tuple)和列表一样,也是一些列数据的有序集合,但和列表不同的是,元组 不能被修改,又被称为只读列表。在python中用()来表示元组。
元组的特点:
1、可以存放多个值
2、不可变
3、按照从左到右的顺序定义元组元素,从下标0开始。
元组的创建:
ages = (11, 22, 33, 44, 55)
或
ages= tuple((11, 22, 33, 44, 55))
常用操作:
#索引
>>> ages = (11, 22, 33, 44, 55)>>>ages[0]11
>>> ages[-1]55
#循环
>>>for age inages:print(age)11
22
33
44
55
注意:元组本身不可变,如果元组中含有其他可变元素,则这些可变元素可以改变,比如:
>>> data = (99, 88, ['alex', 'jack'], 33)>>> data[2][0] = '金角大王'
>>>data
(99, 88, ['金角大王', 'jack'], 33]
为啥呢?因为元组只是存每个元素的内存地址,上面['alex', 'jack'] 这个列表的内存地址存在元组里确实不可变,但是列表中的元素存储的内存地址在另外一块地址空间,是可变的。
七、字典
字典(Dict)是一系列键(key)-值(vlaue)对组成的无序集合,键和值之间用冒号(:)隔开,而键值对之间用逗号隔开。定义的语法如下:
{key1:value1, key2:value2}
示例:
info ={
name:"张三",
age:18,
sex:"male",
height:180}
字典的特性:
1、是key-value结构
2、key必须为不可变数据类型、必须唯一。比如:字符串、元组、数字等
3、可以存放多个value、value可以被修改,可以不唯一;
4、无序
5、查询速度快,而且不受dict 大小影响。
八、集合
集合(Set)是一个无序的不重复元素的组合。python中用{ }来表示集合!
示例:
a = {1, 2, 4, "alex", "rain", (1,2)}
集合的特点:
1、集合里面的元素不可变,代表你不能存储一个列表或者字典在集合里,只能存储数字、字符串和元组等不可变类型的数据;
2、集合天生去重,在集合里无法存重复的数据;
3、无序,不像列表、元组那样可以通过索引来标记在列表中的位置,集合中的元素是无序的,没有先后之分,比如:{1,2,3}和{3,2,1}是同一个集合。
基于上面的特性,集合可以做两件事,去重及关系运算。