Python数据类型全解析:从基础到应用

创始人
2025-01-19 10:57:30
0 次浏览
0 评论

Python中的几种数据类型

一般来说,Python中的数据类型分为以下几类:Number(数字)包括Int、Long、Float、ComplexString(字符串)如:Hello、Hello、HelloList(列表)如:[1,2,3]、[1,2,3,[1,2,3],4]dictionary(字典)例如:{1:hello,2:hello}tuple(元组)例如对于:(1,2,3,ABC)Bool包含True和False,因此Python不需要像其他一些高级语言那样主动声明变量的类型。
例如,我想将值100赋给变量i。
Python的实现是:i=100。
C#的实现是:inti=100;下面对这些数据类型一一进行简单介绍。
将数字类型int和long保留在一起的原因是因为int和long。
这是因为Python3.x之后,int和long没有分开,int同义使用。
Python2.x还是不一样。
我以Python2.7为例:i=10type(i)i=10000000000type(i)那么为什么10是int而10000000000是long,它与int类型的最大值231-1有关,即2147483647,你也可以使用sys.maxint。
为什么用上面的方法计算出来的值2**31-12147483647Lsys.maxint2147483647是long类型(在数字后面加'L'表示long类型),因为2**31的值是2147483648,这是一个long类型,long减1,结果仍然是long,但实际上是int类型的最大值2147483647type(2147483647)type(2147483648)就是float类型,简单来说float类型和其他语言中的float基本一样,很明显,有带小数点的数字,精度和对应的机器一样。
例如:i=10000.1212type(i)complex:复数类型。
具体含义和用法请参考相关文档。
查看。
String类型的声明方式有三种:单引号、双引号和三引号(包括三个单引号或三个双引号)。
例如:str1=helloworldstr2=helloworldstr3=helloworldstr4=helloworldprintstr1helloworldprintstr2helloworldprintstr3helloworldprintstr4helloworldPython中的字符串有两种数据类型:str类型和Unicode类型。
str类型使用ASCII编码,这意味着它不能表示中文。
Unicode类型使用Unicode编码,可以表示任何字符,包括中文和其他语言。
而且与C语言不同的是,Python中没有char类型,即使是单个字符也是字符串类型。
字符串默认使用的ASCII编码,如果要将其声明为Unicode类型,则必须在字符串前面添加u或u。
例如:str1=helloprintstr1hellostr2=uChinaprintstr2China由于项目中经常发生对字符串的操作,而字符串编码问题会导致很多问题,所以我们先来说说字符串编码问题。
在与Python打交道的过程中,我们经常会遇到三种编码:ASCII、Unicode、UTF-8。
详细介绍请看这篇文章。
我简单的理解是ASCII编码适合英文字符,Unicode适合非英文字符(如中文、韩文等),UTF-8是一种存储和传输格式,即对字符进行重新编码.取消编码(以8位为单位编码)。
例如:u=u汉printrepr(u)#uu6c49s=u.encode(UTF-8)printrepr(s)#xe6xb1x89u2=s.decode(UTF-8)printerpr(u2)#uu6c49说明:Unicode字符串声明"chinese”,其unicode编码为“u6c49”,utf-8编码转换后,其编码变为“xe6xb1x89”。
编码经验总结:1、在Python文件头中声明编码格式;#-*-编码:utf-8-*-2。
将字符串连接为Unicode类型,即在字符串前面添加u或U;3、文件读写操作,建议使用codecs.open(),而不是内置的open(),无论使用哪种格式写入,都遵循一个原则。
只需决定使用哪种格式进行阅读即可;假设一个以ANSI格式保存的文本文件包含几个单词“汉字”,如果直接使用下面的代码并在GUI或IDE上打印(例如在SublimeText中,或者)。
在pydev中打印),会出现乱码或者异常,因为codecs会按照文本的编码格式读取内容:f=codecs.open(d:/test.txt)content=f.read()f.close()printcontent可以改为如下方法(仅适用于中文):#-*-coding:utf-8-*-importcodecsf=codecs.open(d:/test.txt)content=f.read()f.close()ifisinstance(content,unicode):printcontent.encode(utf-8)printutf-8else:printcontent.decode(gbk).encode(utf-8)列表classtype列表可变集合是类型。
它的元素可以是基本类型(例如数字和字符串),也可以是集合对象(例如列表、元组和字典),甚至可以是自定义类型。
它的定义为:nums=[1,2,3,4]type(nums)printnums[1,2,3,4]strs=[hello,world]printstrs[hello,world]lst=[1,hello,false,digital,strs]type(lst)printlst[1,hello,False,[1,2,3,4],[hello,world]]通过索引访问列表元素索引从0开始有更多支持负索引最后一位。
lst=[1,2,3,4,5]printlst[0]1printlst[-1]5printlst[-2]4支持分片操作,范围内的元素可以访问,支持各种步长,和数据输入和可以使用分片进行复制操作nums=[1,2,3,4,5]printnums[0:3]#[1,2,3]#前三个元素printnums[3:]#[4,5]#last两个元素printnums[-3:]#[3,4,5]#最后三个元素不支持nums[-3:0]numsclone=nums[:]printnumsclone#[1,2,3,4,5]复制操作printnums[0:4:2]#[1,3]步长为2nums[3:3]=[三,四]#[1,2,3,三,四,4,5]在3和4之间插入数字[3:5]=[]#[1,2,3,4,5]并用[]替换第四和第五个元素,即加法和乘法运算删除[三、四]即可支持lst1=[hello,world]lst2=[good,time]printlst1+lst2#[hello,world,good,time]printlst1*5#[hello,world,hello,world,Hello,World,Hello,World,Hello,World]List支持的方法,可以使用以下方法查看List支持的公共方法:[xforxindir([])ifnotx.startswith(__)][add,count,expand,index,insert,pop,remove,reverse,sort]defcompare(x,y):return1ifxylese-1#[add]插入元素lst于列表末尾=[1,2,3,4,5]lst.append(6)printlst#[1,2,3,4,5,6]lst.append(你好)printlst#[1,2,3,4,5,6]#[pop]删除一个元素并返回该元素的值支持索引默认为最高的最后x=lst.pop()printx,lst#hello[1,2,3,4,5,6]#最后的默认删除元素x=lst.pop(0)printx,lst#1[2,3,4,5,6]删除第一个元素#[count]返回元素出现的次数printlst.count(2)#1#[extend]该方法与扩展列表的“+”操作的区别在于,该方法改变了原来的列表,而“+”操作会生成一个新的列表lstextend=[hello,世界]第一。
extend(lstextend)prentlst#[2,3,4,5,6,hello,world]基于lst扩展lstextend。
#[index]返回某个值第一次出现的索引位置,如果没有找到,会抛出异常printLST.index(hello)#5#printlst.index(kitty)#ValueError:kittyisnotinlist发生异常#[消除]。
如果要删除的项不存在,则lst.remove(hello)将不会返回任何返回值。
打印LST#[2,3,4,5,6,world]hello已被移除#lst.remove(kitty)#ValueError:list.remove(x):xnotinlist#[repose]表示reverse,即把列表元素倒序排列。
排序,不返回值printlst#[2,3,4,5,6,world]lst.revers()printlst#[2,3,4,5,6,world]#[sort]排序printlst#由于上面的反转,当前排序为[world,6,5,4,3,2]lst.sort()printlst#排序后[2,3,4,5,6,world]nums=[10,5,4,2,3]printnums#[10,5,4,2,3]nums.sort(compare)printnums#[2,3,4,5,10]迭代列表已改为。
所谓迭代器就是一个包含next方法的对象(该方法调用时不需要任何参数)。
当调用next方法时,迭代器返回其下一个值。
如果调用next方法但迭代器没有返回值,则会引发StopIteration异常。
迭代器相对于列表的优点是,使用迭代器不需要将列表一次性添加到内存中,而是可以顺序访问列表中的数据。
还是用上面的方法查看迭代器的公共方法:lst=[1,2,3,4,5]lstiter=iter(lst)print[xforxindir(numiter)ifnotx.startswith(__)][next]就这样了,迭代器只有一种方法forward,可以这样操作:lst=[1,2,3,4,5]lstiter=iter(lst)foriinrange(len(lst)):printlstiter.next()#打印有序列表中的12345元组类型,因为它也是一个序列,一个元组无法修改。
元组的声明如下:lst=(0,1,2,2,2)lst1=(hello,)lst2=(hello)printtype(lst1)#如果只有一个元素,后面加一个逗号,否则这个str类型就是printtype(lst2)#字典类型字典类型是键值对的集合,类似于C#中的字典dict1={}printtype(dict1)#声明一个空字典dict2={name:kitty,age:18}#直接声明字典类型dict3=dict([(name,kitty),(age,18)])#将列表转换为字典dict4=dict(name=kitty,age=18)#使用dict函数将关键字参数转换为字典dict5={}.fromkeys([name,age])#从键值列表生成字典以便使用fromkeys函数,对应的值为None{age:none,name:none}字典的基本操作方法:#[addelement]dict1={}dict1[mykey]=helloworld#anynon-Present直接给键值对赋值,立即添加一个新元素dict1[(my,key)]=thiskeyisatuple#字典的键可以是任何不可变类型,例如数字、字符串、元组wait#[Number键值对的个数]printlen(dict1)#[检查是否包含键]printmykeyindict1#True检查是否包含键为mykey的键值对printhelloindict1#False#[删除]deldict1[mykey]#删除键mykey键值对继续使用上面的方法查看字典的所有公共方法:[xforxindir({})ifnotx.startswith(__)][clear,复制,fromkeys,获取,has_key,项目,iteritems,iterkeys,itervalues,键,Pop,popitem,setdefault,update,values,viewitems,viewkeys,viewvalues]dict.clear()删除字典中的所有元素dict.copy()返回字典的副本(浅拷贝)dict.get(key,default=None)返回字典dict中key对应的值,如果字典中不存在该key则返回default的值(注意参数defalt的默认值为None)dict.has_key(key)如果字典中存在该键,则返回True,否则返回False。
Python2.2引入in和notin后,这种方法几乎被废弃,但仍然提供了工作接口。
dict.items()返回包含字典中(key,value)对元组的列表dict.keys()返回包含字典中键的列表dict.values()返回包含字典中所有值的列表字典dict.iter()方法iteritems()、iterkeys()和itervalues()有它们的与相关的非迭代方法类似,只不过它们返回迭代器而不是列表。
dict.pop(key[,default])方法与get()类似。
如果键字典中存在该键,则删除并返回。
如果keykey不存在并且没有给出默认值。
已引发KeyError异常。
dict.setdefault(key,default=None)方法与set()类似。
如果键字典中不存在该键,则通过dict[key]=default为其赋值。
dict.setdefault(key,default=None)方法与set()类似。
如果键字典中不存在该键,则通过dict[key]=default为其赋值。
布尔类型布尔类型(true和false)与其他语言中的布尔类型基本相同。
下面列出了具体的布尔值printbool(0)#Falseprintbool(1)#Trueprintbool(-1)#Trueprintbool([])#Falseprintbool(())#Falseprintbool({})#Falseprintbool()#Falseprintbool(None)#错误的

python数值类型包括哪几种

它包括以下9种类型:1.字符串。
2.布尔类型。
3.整数。
4.浮点数。
5.数字包括整数和浮点数。
6.清单。
7.元组。
8.词典。
9.日期和时间。
10、数值是指用数字来表示一定的度量或数量的概念。
它是一个抽象的符号。
它可以用来描述物理量、经济指标、统计数据等各种量,数值已成为人们日常生活和工作的重要组成部分。
必不可少的一部分,各种数值常被用来描述和衡量各种事物,包括时间、温度、速度、价格、人口、财富等。

python的数据类型有哪些?

第一种类型:整数。

Python可以处理任何大小的整数,当然也包括负整数。
在Python程序中,整数的表达方式与数学中相同,例如:1,100、-8080。
,0等。

由于计算机使用二进制格式,所以有时使用十六进制格式来表示整数更为方便。
十六进制格式由前缀0x和0-9、a-f表示,例如:0xff00。

第二种:浮点数

浮点数也是十进制数。
它们被称为浮点数,因为当用科学记数法表示时,它是小数点的浮点位置。
号码可能会改变。
浮点数可以用数学的形式来写,比如1.23、3.15、-9.01等。
但是对于非常大或者非常小的浮点数,就需要用指数的形式来表示。
将10替换为e,1.23x10^9变为1.23e9。

计算机中存储整数和浮点数的方法是不同的。
整数运算总是精确的,但浮点运算可能会产生舍入误差。

第三种类型:字符串。

字符串是任何用“or”括号括起来的文本,例如“abc”、“xyz”等。
注意“or”本身就是只是一种表示形式,而不是字符串的一部分。
因此,字符串“abc”只包含3个字符:a、b、c。

第四:布尔

布尔值的表达式与布尔代数中的表达式完全相同。
布尔值只有两个值:True和False,要么True要么False。
在Python中,您可以直接使用True和False来表示布尔值,或者使用布尔运算对其进行评估。

布尔值可以有也可以没有。

AND运算是AND运算,只有当一切都为真时,AND运算的结果才为真。

或运算是或运算,只要其中之一为True,或运算的结果就是True。

非运算不是运算。
这是一个一元运算符,可将True变为False,将False变为True。

第五:空值。

空值是Python中的一个特殊值,用None表示。
没有任何不能理解为0,因为0是有意义的,而None是特殊的空值。

此外,Python还提供了列表、字典等各种数据类型,也允许你创建自己的数据类型。

python数值类型有哪三种

“Python支持三种不同的数值类型:整数、浮点数和复数,而布尔类型是不可变类型。
”所谓不可变类型,是指类型的值一旦改变,就是一个全新的对象。
数字1和2分别代表两个不同的对象。
将变量重新分配给数字类型将创建一个新的数字对象。
我还是想强调一下Python变量和数据类型之间的关系。
变量只是对对象或代号、名称、调用等的引用。
变量没有数据类型的概念。
只有“Hello”类型的对象才有数据类型的概念。
整数通常称为整数,包含不带小数点的正值或负值。
表示数字时,通常使用小数。
热门文章
1
Python中的format()方法:字... formatformat在python中的含义2222.22E+00Format...

2
Python编程入门:全面解析Pytho... python的基本语法基本的Python语法如下:1.变量的定义。在编程语言中,...

3
Python爱心绘制教程:使用turtl... python的爱心代码教程(python画爱心代码)绘制心形的Python代码我...

4
Python字符串大小写转换方法全解析 python中字母的大小写转换怎么实现?在Python中,大小写转换由内置函数处...

5
Python字典:轻松获取最小值键与计算... python在一个字典里,返回值最小元素对应的键,救解在Python字典中,如果...

6
Python字符串去重空格:strip(... Python去除字符串中空格(删除指定字符)的3种方法在Python编程中,处理...

7
Python数组元素数量计算技巧分享 Python输出数组有多少个元素?简介:在本文中,首席CTO笔记将向您介绍Pyt...

8
简述python中pass的作用 pass语句的作用在许多编程语言中,包括Python;PASS语句用于在代码块中...

9
Python def 关键字详解:函数定... def是什么意思编程?戴夫是什么意思?def是Python中的函数定义关键字,用...

10
python不区分大小写的方法 Python字符串不区分大小写在Python中,字符串操作默认区分大小写。但有时...