跟其他编程语言一样,python语言也有自身的一套数据类型。具体包括int、float、bool、complex、str、list、tuple、dict等。其中int、float、bool、complex属于数值型。
与C/C++/Java等语言的区别在于,不用提前显示声明变量类型,可以直接给变量赋值,变量类型会自动匹配,可以通过type来查看具体类型。如下图所示。由于int类型大家都很熟悉,就不再赘述。
一、float类型变量
import math
type(3.1415926)
type(math.pi)
type(math.e)
type(3.122222222222222222222222222222222)
上述运行结果都为<class 'float'>。其中使用math这个模块时,需要提前import math。math.pi指的是数学常量PI,math.e是数学常量E。注意3.122222222222222222222222222222222也是个float数据。
二、bool类型
import math
import os
import sys
import str
type(True)
运行结果是<class 'bool'>。
三、complex类型
print(1 + 2j)
print(3+9j)
type((3+9j))
注意python中的complex类型需要采用j而不是数学上常见的i。
四、str和list、tuple的关系
str是字符串类型,也可以理解为字符的列表,而list是可以放任何类型元素的列表。注意理解他们之间的区别和联系。
当不清楚他们各自有什么方法或者函数时,可以通过dir函数来查看。
dir(str)
dir(list)
看到的样子如下图所示。
也可以通过给变量赋值,然后通过dir(变量名)来查看上述内容。
通过str、list自带的方法可以快速实现很多功能。下面以str类型strVar='Test',list类型listVar=[1,2,3,8,5,7]为例说明。
strVar='test'
listVar=[1,2,3,8,5,7]
tupleVar=(1,2,3,8,5,7)
print(len(strVar))#长度运算结果为4
print(len(listVar))#长度运算结果为6
print(len(tupleVar))#长度运算结果为6
strVar.capitalize()#完成首字符大写转换原始字符串不变
listVar.sort()#完成内部数据排序,会修改原始数据
a=list(strVar)
a.sort().reverse()#完成字符串数据的排序,然后逆序打出。也可以直接传入sort函数参数,来实现降序排序或者升序排序
a.sort(reverse=True)
上述代码为什么需要a=list(strVar)的转换,其实因为strVar是不允许赋值修改其中的某个元素的,这一点跟tuple有点像。
五、dict类型
dict在有的编程语言中称为map,python中采用dict的方式来实现类似于map的功能。可以通过算法实现特定数据的快速查找。
dictVar={'a':1,'b':100}
dictVar['a']
dictVar['b']
type(dictVar.keys())
type(dictVar.values())
dir(dictVar.keys())
dir(dictVar.values())
运行结果如下所示。
如果还想知道dict_keys类型中有什么方法,继续使用dir(dict_keys)。