文/帅朋
Python的几种基本的数据类型包括整型、浮点型、字符串、布尔类型、列表(List)、元组(Tuple)、集合(Set)、字典(Dict)等等。接下来就介绍下这几种基本的数据类型。
1. 整型
整型也就是整数,Python可以处理任意大小的整数,其中当然也包括负整数,在Python中整数的表示方法和数学中数学的表示方法一样,例如1,100,-1,-100,0等等。
由于计算机使用的是二进制,所以用十六进制来表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如0xff00,0xac06等等。
2. 浮点型
浮点型也就是小数浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,用e代替10,3.14x10^9就是3.14e9,0.000012可以写成1.2e-5等等。
3. 字符串
字符串是以' '或" "括起来的任意文本,比如'abc',"123"等等。请注意,' '或" "本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符.
4. 布尔类型
布尔值只有True、False两个值,返回值要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来。
布尔值可以用and、or和not运算。
and运算是与运算,只有所有都为 True,and运算结果才是 True。
or运算是或运算,只要其中有一个为 True,or 运算结果就是 True。
not运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True。
5. 列表(List)
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。比如,列出班里所有同学的名字,就可以用一个list表示:
['Andy', 'Kobe', 'Yao']
list是数学意义上的有序集合,也就是说,list中的元素是按照顺序排列的。
构造list非常简单,按照上面的代码,直接用 [ ] 把list的所有元素都括起来,就是一个list对象。通常,我们会把list赋值给一个变量,这样,就可以通过变量来引用list:
classmates = ['Andy', 'Kobe', 'Yao']
由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据:
L = ['Michael', 100, True]
一个元素也没有的list,就是空list:
empty_list = []
6. 元组(Tuple)
tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
同样是表示班里同学的名称,用tuple表示如下:
t = ('Andy', 'Kobe', 'Yao')
创建tuple和创建list唯一不同之处是用( )替代了[ ]。
7. 字典(Dict)
我们已经知道,list 和 tuple 可以用来表示顺序集合,例如,班里同学的名字:
['Andy', 'Kobe', 'Yao']
或者考试的成绩列表:
[95, 85, 59]
但是,要根据名字找到对应的成绩,用两个 list 表示就不方便。
如果把名字和分数关联起来,组成类似的查找表:
'Andy' ==> 95
'Kobe' ==> 85
'Bart' ==> 59
给定一个名字,就可以直接查到分数。
Python的 dict 就是专门干这件事的。用 dict 表示“名字”-“成绩”的查找表如下:
d = {
'Adam': 95,
'Lisa': 85,
'Yao': 59
}
我们把名字称为key,对应的成绩称为value,dict就是通过 key 来查找 value。
花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。
8. 集合(Set)
dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。
set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。
创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:
s = set(['A', 'B', 'C'])
请注意,上述打印的形式类似 list, 但它不是 list,仔细看还可以发现,打印的顺序和原始 list 的顺序有可能是不同的,因为set内部存储的元素是无序的。