搜索
首页后端开发Python教程总结Python中的数据类型

总结Python中的数据类型

Jun 20, 2017 pm 02:26 PM
python基础数据类型

一、整型

在Python2中还有整型和长整型之分,但Python3中取消了长整型,统一归类为整型。

Python中的整型数可以用二进制,八进制,十进制和十六进制几种形式表示

可以用下面的方法来把十进制转换为其他几种形式

>>> print(bin(10))           --------->  把十进制转化为二进制
0b1010>>> print(oct(10))           --------->  把十进制转化为八进制
0o12>>> print(hex(10))           --------->  把十进制转化为十六进制0xa>>> print(hex(100))0x64

二、浮点型

浮点型数就是小数,因为用科学计数法表示小数时,小数点的位置是可以变化的,所以称为浮点数。在计算机中,整数永远是准确的,而浮点数在四舍五入的过程中却有可能产生误差。小的浮点数可以直接写,但是对于位数很多的浮点数,就必须用科学计数法来表示。把10用e表示,如1.03乘10的9次方,就要写成1.03e9

三、字符串类型

定义在引号里面的整体称为字符串,是由一个个字符构成的

引号可以是单引号,双引号,三引号,多引号...(在Python中,单引号和双引号没有区别)

字符串的常用操作:

Python为字符串内置了很多种方法,方便处理需求

1..strip()    作用是移除空白,可以在()中指定移除的字符,默认为空格

x='*****abc*****'
print(x.strip('*'))

运行结果为:abc

2..capitalize()   作用是首字母大写

x='hello world'
print(x.capitalize())

运行结果为:Hello world

3.upper()       作用是所有字母都大写,相反的lower()的作用是所有字母小写

x='hello world'
print(x.upper())

运行结果为:HELLO WORLD

4..center(self,width,fillchar)       作用是把字符放中间,左右用指定的字符填充至指定的字符长度

x='hello world'
print(x.center(30,'*'))

 运行结果为:*********hello world*********
5..count      作用是统计字符串中某一字符出现的次数,可以指定范围
x='hello world'
print(x.count('l',0,10))       命令的作用是统计“hello world”中第1到11个字符中,‘l’出现的次数
运行结果为:3

6..startswith()      以..开头
  x='hello world'
  print(x.startswith('a'))       判断x是否以‘a’开头,如果是,结果为True,如果不是,结果为False
 .endswith()         以..结尾

7..find()          寻找,如果结果不为负数,则成功。会返回目标字符在字符串中的位置
             find()和index()的区别是如果找不到对象,find()会返回-1,index()会报错

8..format        格式化字符串(先举个小例子,后续博客中会详细介绍)
  x='myname:{},age:{},sex:{}'
   print(x.format('zhang',18,'male'))
  
  运行结果为:myname:zhang,age:18,sex:male

9..index()   查看某个字符的索引,如果超出范围会报错
  x='hello world'
  print(x[1])           ------>e
  print(x[4])           ------>o
  print(x[-1])          ------>d     倒着数
  print(x.index('w'))    --------->6   查看某一字符在在字符串中的索引

  字符串的切片操作:print(x[1:3])     -------->el    取x中第1,2个字符
    切片也可以加步长:print(x[1:5:2])   ------->el   取x中第1,2,3,4个字符,但是每两个字符取一次,也就是取第1,3个字符   

10..isdigit()     查看字符串是否为整数,是则输出True,否则输出False
  x='hello world'
  print(x.isdigit())
  
  False

11..replace      替换

   x='hello world'
   print(x.replace('e','E'))        #不止可以替换字符,也可以替换字符串

 运行结果为:hEllo world

12..split()         默认以空格为分隔符分割成几部分,当然也可以指定字符作为分隔符
  
  x='hello:world:today:is:a:goodday'
   print(x.split(':'))

  运行结果为:['hello', 'world', 'today', 'is', 'a', 'goodday']

13..issupper()    判断是否全部为大写
  .islower()     判断是否全部为小写
  .isspace()     判断是否为空格
  .istitle()     判断是否首字母大写

14..ljust()       左对齐
  .rjust()       右对齐

15..swapcase()    大小写反转
  .title()       首字母大写

四、列表 list

 列表中可以存放各种数据类型,以逗号分割开,每个位置存放一个元素

1.列表的特性:可以存放多个值,每个值对应一个索引值

       列表中的值可变

       按从左到右的顺序定义列表元素,下标从0开始,是有序的

2.列表的创建

l=['abc','123',12]           ------>['abc', '123', 12]

l=list('abc123')         ------>['a', 'b', 'c', '1', '2', '3']

l=list(['abc','123',12])               ------->['abc', '123', 12]

 

3.列表的常用操作

1)索引

l=['abc','123',12,[3,'e',5]]

print(l[0])          -------->abc

print(l[2])    ---------->12

print(l[3][2])     ----------->5

2) 切片

l=['abc','123',12,'[3,'e',5]]

print(l[1:3])           --------->['123', 12]

注意:切片是读操作,原列表并不会发生改变

3)追加 .append()

l=['abc','123',12,'[3,'e',5]]

l.append('hello')

print(l)         ------------>['abc', '123', 12, [3, 'e', 5], 'hello']

默认是把字符加在原列表最后边

4)插入  .insert()

l=['abc','123',12,'[3,'e',5]]

l.insert(0,'hello')

print(l)       ------------>['hello', 'abc', '123', 12, [3, 'e', 5]] 

注意:insert()中要指定索引位置,必须指定,否则会报错

5)删除 .pop()

l=['abc','123',12]

l.pop(1)

print(l)     ------------>['abc', 12]

注意:()中可以指定要删除的元素的索引值,默认是最后一个

   l.pop()是有返回值的,返回删掉的元素

补充:队列和堆栈

队列是先进先出,可以用append()和pop(0) 或 insert()和pop()模拟

堆栈是先进后出,可以用append()和pop() 或insert()和pop(0)模拟

6)长度 len()

l=[1,2,3]

print(len(l))    ---------------------->3

7)循环

l=[1,2,3]

for i in l:

print(i)           --------------------->1  2  3

8)包含 in

l=['a','b','c']     

print('b' in l)  ------------------------->True

4.列表的其他操作

1)查看某一元素的索引 .index()

l=['a','b','c']

print(l.index('a'))    ------------------>0

2)列表中某个元素的数量 .count()

l=['a','b','c','a']

print(l.count('a))    -------------->2

3)追加 .extend() 和append有区别

l=[1,2,3]
l.append(['a','b','c'])
print(l)    -------------->[1, 2, 3, ['a', 'b', 'c']]
l=[1,2,3]
l.extend(['a','b','c'])
print(l)    --------------->[1, 2, 3, 'a', 'b', 'c']

4)按元素删除 .remove 

 注意当目标元素不存在时会报错,且有多个目标元素时只会删一个

l=[1,2,3]
l.remove('a')
print(l)      ------------->ValueError: list.remove(x): x not in list

5)排序 .sort()   无返回值

l=[3,2,4]
l.sort()
print(l)    ----------------->[2, 3, 4]
l=['a','c','d','cd']
l.sort()
print(l)    ----------------->['a', 'c', 'cd', 'd']

l.sort(reverse=True) 表示倒序排列

6)反转顺序 .reverse()

 

五、元组 tuple

1)元组的定义

t=('a','b',1,(3,4))

形式与列表相似,只是[]改成了()

2)元组的特性:

元组元素可以是任意数据类型;

元组是不可变数据类型;

元组的元素可以是列表,列表的元素可以变,虽然列表的元素改变了,但是列表作为元组的一个元素并没有发生变化,所以不影响元组是不可变数据类型这一特点

因为元组是不可变数据类型,所以不存在增删改的功能,元组的方法只有count() 和 index()

3)元组的常用操作有:索引、切片、循环、长度和包含

4)元组和列表的相互转化:  

t=('a','b',1,2)
l=['f','d',4]

tl=list(tuple(t))
print(tl,type(tl))    ---------->['a', 'b', 1, 2] <class &#39;list&#39;>

lt=tuple(list(l))
print(lt,type(lt))    ---------->('f', 'd', 4) <class &#39;tuple&#39;>

六、字典 dict

1)字典的定义:

d={'x':1,'y':1234}

2)字典的元素是键值对(key - values)

 字典是一种可变数据类型,其中values可变,但是Key不可变

 需注意:定义字典时,key必须是不可变类型,或者说是可hash类型

3)字典的取值

 字典是无序的,没有索引的概念,通过key来取值 print(d['x']) 就能取到1这个值

 如果key找不到的话会报错,可以用.get(key)   如果找不到key,会打印None,但是不会报错 

4)修改值

 d['x']='s'  --------把原字典改成了{‘x’:'s','y':1234}

5)循环 

d={'name':'zhang','age':18}
print(d.keys())                 #dict_keys(['name', 'age'])
print(d.values())               #dict_values(['zhang', 18])
for i in d:
    print(i)                    #name age  直接遍历字典,打印的是key
for k in d:
    print(k,d[k])               #name zhang   age 18

 因为字典是无序的,所以遍历字典的方法只有 for i in d:这一种

字典的常用方法:

1)清除

d={'x':1}
d.clear()      #清除
print(d)       #{}

2)避免找不到元素报错的情况

d={'x':1}
print(d.get('s'))       #None
print(d('s'))             #报错TypeError: 'dict' object is not callable

3)把键值对转换成元组形式

d={'x':1}
d.items()
for k,v in d.items():
    print(k,v)          #x 1

4)把values转换成列表形式

d={'x':1,'y':2322}
print(list(d.values()))      #把values值转换成列表形式----------->[1, 2322]

5)删除 .pop()

d={'x':1,'y':2322}
d.pop('x')
print(d)                      #{'y': 2322}
print(d.pop('x'))               #1    打印删除的那个值

6)删除 .popitem()  随机删除

d={'x':1,'y':2322}
d.popitem()             #括号里不能跟参数,随机删除
print(d)                #{'x': 1}

7)添加键值对 .setdefault()  括号里是键值对

d={'x':1}
d.setdefault('s',2)             
print(d)            #{'x': 1, 's': 2}      添加键值对,key和值之间用逗号隔开

8)产生字典的方法

d3=dict(x=5,y=2,z=3)                  #{'x': 5, 'y': 2, 'z': 3}   自动生成字典
d3=dict({'x':1,'y':2})                  #{'x': 1, 'y': 2}
d3=dict([('x',1),('y',2),('z',3)])      #{'x': 1, 'y': 2, 'z': 3}
d3={}.fromkeys(['name','age'],None)     #{'name': None, 'age': None}    None的位置只能有一个值,这种方法只能创建这种类型的
print(d3)

9)更新字典 .update()

d={'name':'alex'}
d1={'name':'alexsb','age':30}
d.update(d1)                    #用d1更新字典d
print(d)                    #{'name': 'alexsb', 'age': 30}

10)长度

d={'name':'zhangcan','age':18,'salary':'100000'}
print(len(d))                   #3
print(len(d.values()))          #3
print(len(d.items()))           #3
print(len(d.keys()))            #3

11)成员运算

d={'name':'zhangcan','age':18,'salary':'100000'}
print('x'in d)                                      #False
print('name'in d)                                   #True
print(18 in d)                            #False
print(18 in d.values())                      #True
print('age' in d.keys())                     #True
print(18 in d.items())                       #False
print(('age',18) in d.items())                #True

七、布尔类型

所有的数据类型都自带布尔值(bool),if 判断时,只有0,None,NULL为False,其他都为True

八、集合(set)
1.集合的定义

 1)集合内的元素必须是唯一的,可以用这个特性来实现‘去重’的功能  

  s={'egon',123,123,1,'abf'}
  print(s)           # {1, 123, 'egon', 'abf'}

 2)集合内的元素必须是可hash的,即不可变的

 3)集合是无序的(无索引)

2.集合的关系运算(符号)

s1={'alex','egon','wupeiqi'}
s2={'alex','egon','zhangcan'}
print(s1 & s2)      #取交集
print(s1 | s2)      #取并集
print(s1-s2)        #差集{'wupeiqi'}
print(s1^s2)        #对称差集{'zhangcan', 'wupeiqi'}

3.集合的常用命令

print(s1.difference(s2))    #差集
print(s1.intersection(s2)) # 交集
print(s1.union(s2))         #并集
print(s1.symmetric_difference(s2))  #{'zhangcan', 'wupeiqi'}对称差集
print(s1.symmetric_difference_update(s2))  #None对称差集并更新回s1
print(s1)                                   #{'zhangcan', 'wupeiqi'}
s1.update(s2)       #并集
print(s1)           #{'zhangcan', 'wupeiqi', 'egon', 'alex'}
s1.add('yuanhao')       #添加元素
print(s1)
s1.discard('alex')          #删除(找不到元素不会报错)
print(s1)

s1.remove('alex')          #删除,但找不到元素会报错
s1.pop()         #括号里不能有东西,随机删除
print(s1)

成员运算:

s3={'a','b','c',1,2,3}
s4={1,2,3}
print(s4.issubset(s3))     #s4是否是s3的子集
print(s3.issuperset(s4))    #s3是否是s4的超集
print(s3.isdisjoint(s4))    #s3和s4是否有交集,有交集---False,没有交集---True

 

以上是总结Python中的数据类型的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Python:游戏,Guis等Python:游戏,Guis等Apr 13, 2025 am 12:14 AM

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

Python vs.C:申请和用例Python vs.C:申请和用例Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

2小时的Python计划:一种现实的方法2小时的Python计划:一种现实的方法Apr 11, 2025 am 12:04 AM

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python:探索其主要应用程序Python:探索其主要应用程序Apr 10, 2025 am 09:41 AM

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

您可以在2小时内学到多少python?您可以在2小时内学到多少python?Apr 09, 2025 pm 04:33 PM

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础?如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础?Apr 02, 2025 am 07:18 AM

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到?如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到?Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

Python 3.6加载Pickle文件报错"__builtin__"模块未找到怎么办?Python 3.6加载Pickle文件报错"__builtin__"模块未找到怎么办?Apr 02, 2025 am 07:12 AM

Python3.6环境下加载Pickle文件报错:ModuleNotFoundError:Nomodulenamed...

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)