Python的数据类型主要有如下9种:


bool:布尔型,True/False


int:整数型,-1,0,1,2,3...


float:浮点型,0.01,3.14,-2.234


complex:复数型,1+2j,5+7j


str:字符串型,'abc','hello'


tuple:元组,(1,2,3),("abc",1,3.14)


list:列表,[1,2,3],["abc",1,3.14]


set:集合,{1,2,3},{"abc",1,3.14}


dict:字典,{'a': 1, 'b': 2, "c": 3}


基本数据类型是必须掌握的最基础内容。每个类型的具体使用方法本文不做讨论,下面对几个需要注意的地方进行说明:


(1)Python内置了大数处理


Python可以处理任意大小的整数,当然包括负整数。例如输出9的99次方,这在C++中肯定报溢出错误。


print(9**99)


输出结果:29512665430652752148753480226197736314359272517043832886063884637676943433478020332709411004889


这对于大数运算来说简直是个福音,根本不用考虑在其他语言中整数溢出,或者手工定制大整数类的麻烦。


(2)浮点数不区分单精度,双精度


在Python中,浮点数只有一种,即float,其本身就是双精度的,并可以通过round等函数对其精度进行控制。


print(round(3.141592653589793, 2))


输出结果:3.14


(3)关于复数的表示


Python的复数由实数部分和虚数部分构成,可以用a + bj或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。注意:虚数部分是j不是i。


print((1+2j).imag)



输出结果:2.0


(4)字符串有三种表示法,单字符也是字符串


字符串有单引号,双引号,三引号三种表示法。


'abc',"abc",'''abc'''是一样的。


单字符也是字符串,是只有一个字符的字符串。如:'a','b','c'


(5)字符串str/元组tuple/集合set的元素为不可变对象


要修改字符串str/元组tuple/集合set的元素必须进行转换,不能原地修改。另外元组tuple虽然元素不可改变,但它可以包含可变的对象,比如list列表。


如:t = (1, [2, 3])


(6)字典dict的key必须是不可变类型,如字符串、整数、浮点数、不包含可变对象的元组。


如:d = {2.34: 1, 'b': 2, 5: 3,(1,2):4}可以, d={2.34: 1, 'b': 2, 5: 3,(1,[2,3]):4}则不可以。因为tuple元组(1,[2,3])包含了可变对象,一个list,[2,3]。


(7)tuple、list、str是有序的,可以使用索引、切片操作;集合set和字典dict是无序的,不能使用索引、切片等操作;整数、浮点数、复数等数值型也不能使用索引和切片操作。