首页 > 代码库 > Python学习1,Python的六大数据类型
Python学习1,Python的六大数据类型
# -*- coding: UTF-8 -*-
import keyword
print("hello python!")
print(keyword.kwlist)#查看python的关键字。
‘‘‘
#python的关键字有:
#[‘False‘, ‘None‘, ‘True‘, ‘and‘, ‘as‘, ‘assert‘, ‘break‘,
# ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘,
# ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘,
# ‘is‘, ‘lambda‘, ‘nonlocal‘, ‘not‘, ‘or‘, ‘pass‘, ‘raise‘,
# ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]
‘‘‘
#-----------
a=1
b=type(a)#取出变量a的数据类型。
print(b==int)
c=tuple([1,2])#将列表类型转换为元组类型。
print(type(c))
#----------
‘‘‘
#python3的基本数据类型
#python3中有六个标准的数据类型:
#Number(数字);String(字符串);List(列表);Tuple(元组);Sets(集合);Dictionary(字典)。
#1.Number(数字)
#python3支持int,float,bool,complex(复数)。
#在python3里,只有一种整数类型int,表示为长整型,没有python2中的Long。
#type()函数可以用来查询变量所指的对象类型。
‘‘‘
a,b,c,d=20,5.5,True,4+3j
print(type(a),type(b),type(c),type(d))#d的类型为complex复数型。
‘‘‘#此外,还可以用isinstance来判断‘‘‘
a=111
b=isinstance(a,int)
print(b,type(b))
‘‘‘#isinstance()和type()的区别在于:‘‘‘
class A:
pass
class B(A):
pass
print(isinstance(A(),A))#输出True
print(type(A())==A)#输出True
print(isinstance(B(),A ))#输出True
print(type(B())==A)#输出False
‘‘‘
#区别就是:
#type()不会认为子类是一种父类类型;
#isinstance()会认为子类是一种父类类型。
#注:
#在python2中是没有布尔型的,它用数字0表示False,用1表示True。
# 到python3中,把True和False定义成关键字了,但它们的值还是1和0,它们可以和数字相加。
‘‘‘
a,b,c=1,2+True,3+False#True=1,False=0.
print(a,b,c)
‘‘‘#可以通过使用del语句删除单个或多个对象。例如:‘‘‘
del a
del b,c
‘‘‘#此时print(a,b,c)就会报错,NameError: name ‘a‘ is not defined。‘‘‘
#数值运算
print(5+4)#加法,结果为9
print(5.2-2)#减法,结果为3.2
print(3*7)#乘法,结果为21
print(2/4)#除法,得到一个浮点数,结果为0.5
print(2//4)#除法,得到一个整数,结果为0
print(9//4)#结果为2
print(17%3)#取余,结果为2
print(2**5)#乘方,结果为32
‘‘‘
#python可以同时为多个变量赋值,如a,b=1,2。
#一个变量可以通过赋值指向不同类型的对象。
#数值的除法(/)返回的是一个浮点数,取整要用"//"操作符。
#在混合计算时,python会把整型转换成为浮点数。
#-----------------------------------------------------------------------------------------
数值类型实例
int:10,100,-786,080,-0490,-0x69
float:0.0,15.20,-21.9,32.3+e18,-90.,-32.54e100,70.2-E12
complex:3.14j,45.j,9.322e-36j,.876j,-.6545+0j,3e+26j,4.53e-7j
‘‘‘
print(-0x69)#结果为-105
‘‘‘
python还支持复数,复数由实数部分和虚数部分构成,可以用a+bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。
‘‘‘
#-----------------------------------------------------------------------------------------
‘‘‘
#2.String(字符串的数据类型)
#字符串可以用‘+’运算符连接在一起,用‘*’运算符重复。
‘‘‘
d=‘Nothing is impossible!‘
print(d)#输出d的所有字符
print(d[0:-1])#输出d的第一个到倒数第二个(不包含最后一个)的所有字符
print(d[0])#输出d的第1个字符
print(d[::-1])#倒序输出d的所有字符
print(d[::2])#???
print(d[2:5])#输出d的第三个到第五个(不包含第六个)的所有字符
print(d[2:])#输出d的第三个到最后的所有字符
print(d*2)#输出两遍d的所有字符
print(d+‘test‘)#连接字符串
e=‘abcdefg‘
print(e[::2])#每隔一个输出e的所有字符
‘‘‘
#转义符‘\’的输出
#反斜杠可以用来转义,使用‘r‘可以让反斜杠不发生转义。
#另外,反斜杠也可以作为续行符,表示下一行是上一行的延续。也可以使用"""..."""或者\‘‘‘...\‘‘‘跨越多行。
‘‘‘
print(‘runoob‘)
print(‘ru\noob‘)
print(r‘ru\noob‘)
‘‘‘
#字符串的索引位置
#python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
‘‘‘
word=‘python‘
print(word[3],word[5])#输入变量word的第四个和第六个字符
print(word[-1],word[-6])#输出变量word的最后一个和倒数第六个字符
‘‘‘
#与C语言字符串不同的是,python字符串不能被改变,向一个索引位置赋值,比如word[0]=‘m‘会导致错误。
#注意:
#1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
#2、字符串可以用+运算符连接在一起,用*运算符重复。
#3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
#4、Python中的字符串不能改变。
‘‘‘
#-----------------------------------------------------------------------------------------
‘‘‘
#3.List(列表)
#List(列表)是python中使用最频繁的数据类型。
#列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(嵌套)。
#列表是写在方括号([])之间、用逗号隔开的元素列表。
#和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
#列表截取的语法格式如下:
# 变量[头下标,尾下标]
#索引值以0为开始值,-1为从末尾的开始位置。
#加号(+)是列表连接运算符,星号(*)是重复操作,如下实例:
‘‘‘
l=[‘abcd‘,786,2.23,‘runoob‘,70.2]#定义列表l
tinyl=[123,‘runoob‘]#定义列表tinyl
print(l)#输出列表l的所有元素,结果为[‘abcd‘, 786, 2.23, ‘runoob‘, 70.2]
print(l[0])#输出列表l的第一个元素,结果为abcd
print(l[1:4])#输出列表l的第二个到第四个(不包含第五个)元素,结果为[786, 2.23, ‘runoob‘]
print(l[2:])#输出列表l的第三个到最后的所有元素,结果为[2.23, ‘runoob‘, 70.2]
print(l[::-1])#倒序输出列表l的所有元素,结果为[70.2, ‘runoob‘, 2.23, 786, ‘abcd‘]
print(l[::2])#每隔一个输出列表l的所有元素,结果为[‘abcd‘, 2.23, 70.2]
print(l*2)#输出列表l两遍,结果为[‘abcd‘, 786, 2.23, ‘runoob‘, 70.2, ‘abcd‘, 786, 2.23, ‘runoob‘, 70.2]
print(l+tinyl)#连接列表l和列表tinyl,结果为[‘abcd‘, 786, 2.23, ‘runoob‘, 70.2, 123, ‘runoob‘]
print(l*2+tinyl)
‘‘‘
#与python字符串不一样的是,列表中的元素是可以改变的。
#List内置了有很多方法,例如append()、pop()等等,这在后面会讲到。
#注意:
#1、List写在方括号之间,元素用逗号隔开。
#2、和字符串一样,list可以被索引和切片。
#3、List可以使用+操作符进行拼接。
#4、List中的元素是可以改变的。
‘‘‘
‘‘‘
#4.Tuple(元组)
#元组(tuple)与列表类似,不同之处在于元组的元素不能修改。
#元组写在小括号(())里,元素之间用逗号隔开。
@元组中的元素类型也可以不相同。
‘‘‘
t=(‘abcd‘, 786 , 2.23, ‘runoob‘, 70.2 )
tinyt=(123, ‘runoob‘)
print(t)#输出元组t的所有元素,结果为(‘abcd‘, 786, 2.23, ‘runoob‘, 70.2)
print(t[0])#输出元组t的第一个元素,结果为abcd
print(t[1:4])#输出元组t的第二个到第四个(不包含第五个)元素,结果为(786, 2.23, ‘runoob‘)
print(t[::-1])#倒序输出元组t的所有元素,结果为(70.2, ‘runoob‘, 2.23, 786, ‘abcd‘)
print(t[2:])#输出远处t的第三个到最后一个的所有元素,结果为(2.23, ‘runoob‘, 70.2)
print(t[::2])#每隔一个输出元组t的所有元素,结果为(‘abcd‘, 2.23, 70.2)
print(t*2)#输出元组两遍,结果为(‘abcd‘, 786, 2.23, ‘runoob‘, 70.2, ‘abcd‘, 786, 2.23, ‘runoob‘, 70.2)
print(t+tinyt)#连接元组t和元组tinyt,结果为(‘abcd‘, 786, 2.23, ‘runoob‘, 70.2, 123, ‘runoob‘)
‘‘‘
#元组和字符串类似,可以被索引且下标索引从0开始,-1为从末尾开始的位置。也可以进行截取。
#其实,字符串也可以被看作是一种特殊的元组。
‘‘‘
t=(1,2,3,4,5,6)
print(t[1])
print(t[2:5])
‘‘‘
#修改元组元素是非法的,例如执行t[0]=11就会报错,TypeError: ‘tuple‘ object does not support item assignment。
#虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
#构造包含0个或者1个元素的元组比较特殊,语法格式如下:
‘‘‘
t0=()#空元组
t1=(20,)#一个元素,需要在元素后添加逗号。
‘‘‘
#string、list和tuple都属于sequence(序列)。
#注意:
#1、与字符串一样,元组的元素不能修改。
#2、元组也可以被索引和切片,方法一样。
#3、注意构造包含0或1个元素的元组的特殊语法规则。
#4、元组也可以使用+操作符进行拼接。
‘‘‘
import this
‘‘‘
#5.Set(集合)
#集合(Set)是一个无序不重复元素的序列。
#基本功能是进行成员关系测试和删除重复元素。
#可以使用大括号{}或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。
‘‘‘
student={‘Tom‘,‘Jim‘,‘Mary‘,‘Tom‘,‘Jack‘,‘Rose‘}
student1={‘Tom‘,‘Jim‘,‘Rose‘}
print(student)#输出集合student,重复的元素被主动去掉(输出顺序无规则)
#成员测试
m=‘Rose‘
if(m in student):
print(‘m在集合中‘)
else:
print(‘m不在集合中‘)
#set可以进行集合运算
a=set(‘abracadabra‘)
b=set(‘alacazam‘)
print(a,b)#输出集合a和集合b,结果为{‘r‘, ‘c‘, ‘b‘, ‘d‘, ‘a‘} {‘c‘, ‘m‘, ‘z‘, ‘l‘, ‘a‘}
print(a-b)#输出集合a与集合b的差集,结果为{‘b‘, ‘r‘, ‘d‘}
print(a|b)#输出集合a与集合b的并集,结果为{‘r‘, ‘c‘, ‘b‘, ‘m‘, ‘z‘, ‘l‘, ‘d‘, ‘a‘}
print(a&b)#输出集合a与集合b的交集,结果为{‘c‘, ‘a‘}
print(a^b)#输出集合a与集合b中不同时存在的元素(并集-交集),结果为{‘r‘, ‘m‘, ‘b‘, ‘z‘, ‘l‘, ‘d‘}
print(student-student1)#输出集合student与集合student1的差集,结果为{‘Jack‘, ‘Mary‘}
‘‘‘
#6.Dictionary(字典)
#字典(dictionary)是Python中另一个非常有用的内置数据类型。
#列表是有序的对象集合,字典是无序的对象集合。
#两者的区别是:字典中的元素是通过键来存取的,而不是通过偏移存取。
#字典是一种映射类型,字典用“{}”标识,它是一个无序的键(key):值(value)对集合。
#键(key)必须使用不可变类型。
#在同一个字典中,键(key)必须是唯一的。
‘‘‘
di={}#创建空字典di
print(di)
di[‘one‘]="1-菜鸟教程"#在字典di中创建key=‘one‘,value="http://www.mamicode.com/1-菜鸟教程"的键值对元素。
print(di)
di[2]="2-菜鸟工具"#在字典di中创建key=‘2‘,value="http://www.mamicode.com/2-菜鸟工具"的键值对元素。
print(di)#输出字典di的所有元素
print(di[‘one‘])#输出字典di中key=‘one‘的元素
print(di[2])#输出字典di中key=‘2‘的元素
tinydict={‘name‘:‘Google‘,‘code‘:1,‘site‘:‘www.google.com‘}
print(tinydict)
print(tinydict.keys())#输出字典tinydict中所有的键
print(tinydict.values())#输出字典tinydict中所有的值
‘‘‘
#构造函数dict()可以直接从键值对序列中构建字典如下
‘‘‘
dict1=dict([(‘Biying‘,1),(‘Google‘,2),(‘Taobao‘,3)])
print(dict1)
dict2={x:x**2 for x in (2,4,6,8)}
print(dict2)
dict3=dict(Runoob=1,Google=2,taobao=3,baidu=4)
print(dict3)
‘‘‘
#另外,字典类型也有一些内置的函数,例如clear()、keys()、value()等。
#注意:
#1.字典是一种映射类型,它的元素是键值对。
#2.字典的关键字必须为不可变类型,且不能重复。
#3.创建空字典使用{}。
#Python数据类型转换
数据转换只需要将数据类型作为函数名即可。
#以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
#int(x[,base]) #将x转换为一个整数
#float(x) #将x转换到一个浮点数
#complex(real[,imag]) #创建一个复数
#str(x) #将对象x转换为字符串
#repr(x) #将对象x转换为表达式字符串
#eval(str) #用来计算在字符串中的有效Python表达式,并返回一个对象。
#tuple(s) #将序列s转换为一个元组
#list(s) #将序列s转换为一个列表
#set(s) #转换为可变集合
#dict(d) #创建一个字典。d必须是一个序列(key,value)元组。
#frozenset(s) #转换为不可变集合
#chr(x) #将一个整数转换为一个字符
#unichr(x) #将一个整数转换为Unicode字符
#ord(x) #将一个字符转换为它的整数值
#hex(x) #将一个整数转换为一个十六进制字符串
#oct(x) #将一个整数转换为一个八进制字符串
‘‘‘
"""
#注释:
#1.单行注释符#
#2.多行注释符:单引号(‘‘‘)、双引号(\""")。
"""
Python学习1,Python的六大数据类型
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。