Hi,我是九柄,今天我们说说Python的数据类型。
python数据类型有什么特点
每一门编程语言都要学数据类型的,每种类型的操作会稍微有一点区别。Python是一门非常灵活的编程语言,数据类型的指定和其他编程语言会稍微有一点区别。
首先,Python不需要显性声明数据的类型,当定义变量的时候,会智能判断变量存储的类型。
name="jiubing"age=19百家号="九柄"
其次,在定义变量时,不需要指定一个数据,这样程序才知道它的数据类型。
name#错误写法,变量没写数据
Python是强类型的编程语言
你可能经常会听说一门编程语言是强类型还是弱类型,其实你不需要太去深究这个概念,只需要大概知道,强类型语言不能用两个不同类型的数据进行运算就可以了(不是绝对的)。
python是强类型的,所以运算时,要注意是否同类型。
"jiubing"+1#错误写法"jiubing"*3#但这个是正确的
数据类型有哪些
Python里面常用的数据类型有:
str字符串
int整型
float浮点数
bool布尔
list列表
dict字典
tuple元组
set集合
NoneType空类型
每一个数据类型的表示都有一个小小案例,眼熟就够了,后面每种数据类型都会详细讲。
#str"hello"#int3#float3.1#boolTrue#list[1,2,3]#dict{"name":"mingtian"}#tuple(1,2)#set{1,2,3}#NoneTypeNone
数据类型判断
虽然我们写了这么多数据,但是并不知道在python中他们真的数据类型是什么。isinstance()这个操作可以判断一个数据是否为某个数据类型。但是None不能用这个判断。
#strprint(isinstance("hello",str))#intprint(isinstance(3,int))#floatprint(isinstance(3.1,float))#boolprint(isinstance(True,bool))#listprint(isinstance([1,2,3],list))#dictprint(isinstance({"name":"mingtian"},dict))#tupleprint(isinstance((1,2),tuple))#setprint(isinstance({1,2,3},set))#NoneTypeprint(NoneisNone)TrueTrueTrueTrueTrueTrueTrueTrueTrue
有的教程会用type()这个操作判断数据类型,但是isinstance会更加常用,我个人认为type稍微了解就可以了。
数据类型转换
几乎所有的数据类型都是可以转化成字符串的,但是反过来则不一定。数据类型转换需要满足特定的规则。
转化成整型
#float转成int,去掉小数点print(int(1.7))#bool转成int,True为1,False为0print(int(True))#str转成int,必须是整数格式print(int("4"))
转换成浮点数
#int转换成floatprint(float(3))#bool转换成floatprint(float(True))#str转成float,必须是浮点格式print(float("4.6"))3.01.04.6
转换成布尔类型
#int转换成bool,0为False,其他为Trueprint(bool(3))print(bool(0))#float转换成bool,和int一样print(bool(-1.2))#str转成bool,""为False,其他为Trueprint(bool(""))print(bool("ab"))#tuple转成bool,空为False#list转成bool,空为False#dict转成bool,空为False#set转成bool,空为Falseprint(bool([]))TrueFalseTrueFalseTrueFalse
转换成列表
一般是容器类型才能相互完成转换。
#str-list,拆分字符print(list("没那么简单"))#dict-list,得到所有的keyprint(list({"name":"mingtian"}))[没,那,么,简,单][name]
转换成字典
首先原类型是一个序列,序列当中的每个元素需要包含两个元素,作为键值对。
origin=[("name","mingtian"),("age","19")]print(dict(origin)){name:mingtian,age:19}
可变数据类型和不可变类型
每一个数据都会存在电脑内存当中某个位置,有的数据定义好了之后,可以修改,而有的数据类型则不能被修改。数据类型可变性直接决定了以后的操作,如果不深入理解,代码经常会出问题。
而现在只需要大概了解,后面再深入讲解。
Python的可变类型:
列表
字典
集合
Python的不可变类型:
字符串
整型
浮点数
布尔
元组
数据类型学什么
总体上来说,看到一个数据,能马上能识别它是什么类型就可以了。随后,就可以根据不同的数据类型执行对应的操作。必要的时候,还需要对数据类型进行转换。
数据类型中,列表、字典、元组经常会在面试题中出现,在面试之前需要额外留意,我整理的面试八股文中就有很多这样的题,可以文末