当前位置: 首页 > 后端技术 > Python

Python六种数据类型

时间:2023-03-25 21:50:51 Python

六种数据类型#Python的六种数据类型是Number(四种数字类型)+五种容器类型1、Number数字类型intinteger(整型)float浮点数(decimal)boolBoolean类型(布尔值)complexcomplexlonglargeinteger类型(longinteger类型,无穷大,python3.X淘汰,原因:科技和计算机的发展让内存变得廉价)2.container容器类型strstringlistlisttupleelementGroupsetcollectiondictdictionarynumbertypedataintintegertype什么是整数类型integertype指的是整数类型,包括正整数、0、负整数不认为是整数#定义变量时,直接赋整数,变量的类型就变成了integerintvar=100#Integerprint(intvar,type(intvar))intvar=100.00#不是整数(浮点数)print(intvar,type(intvar))#使用int函数,即空整数intvar=int()#默认为0print(intvar,type(intvar))其他十进制整数的表示#二进制、八进制、十六进制数:在表示这些数的时候,分别在前面加上0b、0o、0x。#二进制数intvar1=0b101010101#八进制数intvar2=0o713211230#十六进制数intvar3=0xabcdef123#print打印出来的数据显示的是十进制数print(intvar1,intvar2,intvar3)float什么是浮点型?最重要的是如何定义小数的浮点类型#1.直接写小数flt??var=100.1print(fltvar,type(fltvar))#2.科学记数法#E表示小数点的位置,1.E2表示小数点向右移动两位,位数不够用0补,1E-1反之。fltvar1=1.E2+1E-1print(fltvar1,type(fltvar1))#3.使用函数float,空浮点数flt??var2=float()print(fltvar2,type(fltvar2))什么是科学计数法scientificnotation方法是一种计数方法。用a乘以10的n次方(1≤|a|<10,a不是分数,n是整数)的形式来表示一个数,这种记数法称为科学记数法。当我们要用很多数字标记或计算更大或更小的东西时,使用科学记数法可以节省大量浪费的空间和时间。概念:将一个数表示为a乘以10的n次方(1≤|a|<10,a不是分数,n是整数),这种记数法称为科学记数法。例如:19971400000000=1.99714×10^13。计算器或计算机用E或e表示10的次方,即1.99714E13=19971400000000。bool布尔值什么是布尔值?在计算机上,布尔值表示逻辑真或假。布尔值只有两种类型,True和False,True和False。在python中,甚至在计算机科学中,任何事物的本质都是True和False,既真又假,这也离不开计算机的工作原理。它仅以两种形式表示。如何定义布尔值#1.直接输入true或false#注意python中true和false的首字母大写bolvar1=True#truebolvar2=False#falseprint(bolvar1,type(bolvar1))print(bolvar2,type(bolvar2))#2.使用bool函数,默认为falseboolvar=bool()print(boolvar)complex什么是复数复数是由实数和虚数组成的数。因为这样的数在现实中是不存在的,所以用J来表示。简单来说,复数就是实数+虚数。j:如果有一个数的平方等于-1,那么这个数就是j。科学家们认为有一种高精度的类型。如何定义复数#1.直接写复数cpxvar=4jcpxvar1=1+4jcpxvar1=-4j#使用函数complex()cpxvar2=complex(10,20)容器类型数据#注意:可以存储任何类型的数据在容器类型数据中,二级及以上容器有特殊情况#字符串容器比较特殊。任何数据类型都可以存储在str中,但任何数据类型都会变成strstr。什么是字符串?字符串是用引号括起来的字符,不管引号里是什么数据,只要是引号里的字符串即可。字符串的字符可以按顺序获取,不修改,定义String#凡是用引号括起来的都是字符串,不管是什么,包括所有类型的引号,比如多行注释#1.直接使用引号#使用各种引号的都是字符串strvar='hellomotherland'strvar1="hellomymotherland"#使用三重引号跨行,定义变量接受,否则只是注释strvar2='''hellomotherland'''strvar3="""你好我的祖国"""print(strvar,type(strvar))print(strvar1,type(strvar1))print(strvar2,type(strvar2))print(strvar3,type(strvar3))#即使其他数据类型也是字符串strvar='100'#引号是整数print(strvar,type(strvar))#定义一个空字符串,使用str函数或者空引号strvar,strvar2=str(),''print(type(strvar),type(strvar2))获取字符串中的数据#python中字符串中也有正负下标strvar='hellomotherland'res=strvar[-1]print(res)res=strvar[1]print(res)#字符串不可修改#修改字符串的一个元素#strvar[-1]='m'#报错错误列表什么是列表?修改有序定义列表#列表中可以存放所有数据,用括号括起来,不同数据用逗号隔开#直接定义msr='hellomotherland'#字符串变量lstvar=[1,2,3,'hellochina',msr]#可以存储整数、字符串、变量等合法数据类型print(lstvar,type(lstvar))#定义一个空列表lstvar,lstvar2=list(),[]获取列表中的元素容器container中的每个元素都有对应的正负下标索引依次排列,如如果要获取容器中的元素,可以根据下标索引获取'''正向下标索引:01234'''lstvar=[1,2,3,4,5]'''反向下标索引:-5-4-3-2-1'''#get第一个元素res=lstvar[0]#反下标是Python特有的,可以快速获取容器中的最后一个元素res=lstvar[-1]#没有反下标如何获取最后一个数据元素#各语言获取最后一个元素的一般写法,获取长度,然后减一,以为下标从0开始res=len(lstvar)#获取元素个数res=lstvar[res-1]#下标从0开始,soMinus1print(res)#修改元素数据,可以修改list数据lstvar=[1,2,3]lstvar[-1]='msr'print(lstvar[-1])tuple可以得到元组特征,notModifyandorderlydefinetuples#元组是以逗号分隔的数据。一般情况下都会用到括号,但是不需要括号tupvar=(1,2,3,4,5)print(tupvar,type(tupvar))#逗号是元组的标识,只要有一个逗号,即使只有一个元素,也可以不用括号定义#这些方式定义的数据类型都是元组类型tupvar=(1,)tupvar=1,2tupvar=1,#定义一个空元组#A单括号是元组类型的数据tupvar=()tupvar1=tuple()print(tupvar,tupvar1)print(type(tupvar),type(tupvar1))获取元组中的数据#元组也有正负下标tupvar=(1,2,3,4,5)#获取元组的元素数据res=tupvar[-1]print(res)#元组的元素不能改变#tupvar[-1]='qwe'#errorcannotbemodifiedsetcollectioncharacteristicscanbegetting,unmodified,unordered,andautomaticallyredefinthecollection#集合用花括号括起来,用逗号分隔data的一种数据形式#define一个普通集合setvar={1,2,3,4,5}#使用set函数来定义定义集合setvar=set()#定义一个空集合#注意:集合不能直接用花括号定义空集合。花括号定义字典setvar,setvar1=set(),{}print(setvar,type(setvar),setvar1,type(setvar1))用于集合之间的互补#1.自动去重:集合会自动删除容器中的重复数据setvar={1,1,1,2,2,2,3,3,3,4}print(setvar)#打印数据{1,2,3,4}#2.集合是无序的:重复刷新会发现打印的元素顺序不定setvar={'1','2','3'}print(setvar)#print{'1','2','3'}{'1','3','2'}{'3'multipletimes','1','2'}#自动去重后的集合也是无序的,但如果集合是纯数字,则排序根据数字的大小setvar={1,23,4,5,6,7,8,}print(setvar)setvar={True,False,True}print(setvar)setvar={1,23,4,5,True,6.123412,7,8,False}print(setvar)获取集合Data#因为集合是无序的,集合没有下标索引,所以可以不r获取单个元素,也不对其进行修改。setvar={'1','2','3','1','2','3','1','2','3'}#获取集合中的一个元素#res=setvar[-1]#errorerror#也修改不了,以为要修改的数据根本取不到setvar[-1]='1234'#errorerrordictdictionary什么是字典?字典是其他语言中的自定义对象。特点使用key存储数据,可获取,可修改,表面有序,实际上无序),{}#定义一个普通字典ditvar={'及时雨':'宋江','玉麒麟':'卢俊义','智多星':'吴勇','蟒蛇小白':'小白白'}print(ditvar,type(ditvar))获取和修改字典数据#字典使用键来存储数据,所以要获取字典中的一个元素,需要找到它对应的键,修改也是如此。ditvar={'及时雨':'宋江','玉麒麟':'卢俊义','智多星':'吴勇','Python小白':'小白白'}#获取并修改其中的元素dictionary#获取数据res=ditvar['智多星']print(res)#修改数据(根据字典中已有的key修改)ditvar['Python小白']='小黑'print(ditvar)#添加keyandValue(其实就是修改后的值)ditvar[1]=1#在字典中添加一个为1的key,值为1print(ditvar[1])#注意字典的key是唯一的,当两个相同的key字典中出现key时,key取后面key对应的value#字典的key是唯一的dicvar={1:2,1:3}print(dicvar)字典的key和valueofcollection数据类型要求#集合的值和字典的键必须是可散列的数据类型(不可变数据)。字典的key和set的value对数据类型有要求,只能是Number、str、tuple类型的数据。字典的值对数据类型没有要求,只要是合法的python数据类型即可#在实际工作中,我们对字典的要求比较高。虽然python中key的命名满足了上面的要求,可以系统的执行,但是我一般要求字典的key的命名和变量名的命名一样。"""集合中字典的键和值的数据类型要求必须如下:可接受以下类型:Immutabledata(可散列数据类型)OrderedNumber(int,float,bool,complex),str,typesnotallowedbytuple:mutabledata(non-hashabledatatypes)unorderedlist,set,dict"""但说到哈希算法(hash),就是典型的无序特征目的:为了更统一的数据分配到内存,底层算法类似于取模。python3.6版本之后对字典进行了优化,存储数据的时候使用了hash算法,但是在取出数据的时候,新的字典按照定义的顺序重新排序,这样看起来是有序的,但实际上是无序的。容器类型总结数据类型是否可获取,是否有序,是否可修改其中,元素strstring可按顺序获取,不可修改listlist可按顺序获取,可修改tupletuple可beinanorderandcannotbemodifiedsetcollection无法获取且无法修改(无法手动修改,来回修改也是一种修改)dict字典看似有序获取,但实际乱序可以修改