# -*- 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="1-菜鸟教程"的键值对元素。 print(di) di[2]="2-菜鸟工具"#在字典di中创建key='2',value="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.多行注释符:单引号(''')、双引号(\""")。 """