|
一、数据类型分类Python3中常见的数据类型有:Number(数字)String(字符串)bool(布尔类型)List(列表)Tuple(元组)Set(集合)Dictionary(字典)Python3的六个标准数据类型中:**不可变数据(3个):**Number(数字)、String(字符串)、Tuple(元组);**可变数据(3个):**List(列表)、Dictionary(字典)、Set(集合)。基本Number(数字)String(字符串)多字段List(列表)Tuple(元组)Dictionary(字典)Set(集合)# List(列表)my_list=[0,1,2,3,4,5,6,7,8]#Tuple(元组)(值不能修改)my_tuple=(1,2,3,4)#Dictionary(字典)my_info={'name':'张三','age':18,'address':'北京市'}#Set(集合)set01={1,2,3,4}1234567891011二、基本数据类型1、Number(数字)Python3支持int、float、bool、complex(复数)。在Python3里,只有一种整数类型int,表示为长整型,没有python2中的Long。像大多数语言一样,数值类型的赋值和计算都是很直观的。内置的type()函数可以用来查询变量所指的对象类型。Python可以同时为多个变量赋值,如a,b=1,2。一个变量可以通过赋值指向不同类型的对象。数值的除法包含两个运算符:/返回一个浮点数,//返回一个整数。在混合计算时,Python会把整型转换成为浮点数>>>5+4#加法9>>>4.3-2#减法2.3>>>3*7#乘法21>>>2/4#除法,得到一个浮点数0.5>>>2//4#除法,得到一个整数0>>>17%3#取余2>>>2**5#乘方3212345678910111213142、String(字符串)反斜杠可以用来转义,使用r可以让反斜杠不发生转义。字符串可以用+运算符连接在一起,用*运算符重复。Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。Python中的字符串不能改变。print(str[0:-1])#打印字符串第一个到倒数第二个字符(不包含倒数第一个字符)print(str[0])#打印字符串的第一个字符print(str[2:5])#打印字符串第三到第五个字符(包含第五个字符)print(str[2:])#打印字符串从第三个字符开始到末尾str_01='mynameis:{},age:{}'print(str_01.format('张三',18))str_02='mynameis:{name},age:{age}'print(str_02.format(name='张三',age=18))str_03='mynameis:{name},age:{age}'print(str_03.format_map({'name':'张三','age':18}))12345678910111213Python使用反斜杠\转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符串:print('Ru\noob')Ruoobprint(r'Ru\noob')Ru\noob12345encode()、decode()方法encode()方法以指定的编码格式编码字符串。errors参数可以指定不同的错误处理方案。decode()方法以指定的编码格式解码bytes对象。默认编码为‘utf-8’。该方法返回编码后的字符串,它是一个bytes对象。str.encode(encoding='UTF-8',errors='strict')bytes.decode(encoding="utf-8",errors="strict")12encoding–要使用的编码,如:UTF-8。errors–设置不同错误的处理方案。默认为‘strict’,意为编码错误引起一个UnicodeError。其他可能得值有‘ignore’,‘replace’,‘xmlcharrefreplace’,‘backslashreplace’以及通过codecs.register_error()注册的任何值。#!/usr/bin/python3str="菜鸟教程"str_utf8=str.encode("UTF-8",'strict')str_gbk=str.encode("GBK")print("UTF-8编码:",str_utf8)print("GBK编码:",str_gbk)print("UTF-8解码:",str_utf8.decode('UTF-8'))print("GBK解码:",str_gbk.decode('GBK','strict'))1234567891011结果:UTF-8编码:b'\xe8\x8f\x9c\xe9\xb8\x9f\xe6\x95\x99\xe7\xa8\x8b'GBK编码:b'\xb2\xcb\xc4\xf1\xbd\xcc\xb3\xcc'UTF-8解码:菜鸟教程GBK解码:菜鸟教程12343.2format格式化字符串#1、print('{}网址:"{}!"'.format('菜鸟教程','www.runoob.com'))#2、print('{name}网址:{site}'.format(name='菜鸟教程',site='www.runoob.com'))#3、print('{0}和{1}'.format('Google','Runoob'))#可以任意组合print('站点列表{0},{1},和{other}。'.format('Google','Runoob',other='Taobao'))#4、table={'Google':1,'Runoob':2,'Taobao':3}print('Runoob:{0[Runoob]:d};Google:{0[Google]:d};Taobao:{0[Taobao]:d}'.format(table))123456789101112133、Bool(布尔类型)布尔类型即True或False。在Python中,True和False都是关键字,表示布尔值。布尔类型可以用来控制程序的流程,比如判断某个条件是否成立,或者在某个条件满足时执行某段代码。布尔类型特点:布尔类型只有两个值:True和False。布尔类型可以和其他数据类型进行比较,比如数字、字符串等。在比较时,Python会将True视为1,False视为0。布尔类型可以和逻辑运算符一起使用,包括and、or和not。这些运算符可以用来组合多个布尔表达式,生成一个新的布尔值。布尔类型也可以被转换成其他数据类型,比如整数、浮点数和字符串。在转换时,True会被转换成1,False会被转换成0。a=Trueb=False#比较运算符print(21011234564、Bytes字符串转为Bytes#解析为bytes:b'Hello,World'print('Hello,World'.encode())12Bytes转为字符串#创建一个bytes对象bytes_data=b'Hello,World!'#b'Hello,World!'print(bytes_data)#将bytes对象转换为字符串string_data=bytes_data.decode('utf-8')print(string_data)123456789三、多值存储1、List(列表)增、删、改、查:my_list=[0,1,2,3,4,5,6,7,8]#1、增my_list.append('333')#将另一个集合中添加到列表中insert_list=[1,23]my_list.extend(insert_list)#指定位置前插入元素my_list.insert(2,'34')#2、删my_list.remove()#3、改my_list[1]='张三'#4、查#查看是否存在于集合中print('张三'inmy_list)#查询所在索引my_list.index('张三')my_list.index('张三',1,4)#查询数量my_list.count('张三')1234567891011121314151617181920212223其它#循环foroneinmy_list:#print(one)print(one,end='==')print(one,end='==\n%%%')#排序#排序-正序my_list.sort()#排序-倒叙my_list.sort(reverse=True)1234567891011函数内置方法方法序号list.append(obj)在列表末尾添加新的对象list.count(obj)统计某个元素在列表中出现的次数list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)list.index(obj)从列表中找出某个值第一个匹配项的索引位置list.insert(index,obj)将对象插入列表list.pop([index=-1\])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值list.remove(obj)移除列表中某个值的第一个匹配项list.reverse()反向列表中元素list.sort(key=None,reverse=False)对原列表进行排序list.clear()清空列表list.copy()复制列表2、Tuple(元组)Python的元组与列表类似,不同之处在于元组的元素不能修改。#tuple元组my_tuple=(1,2,3,4)#查-某个值print(my_tuple[1])#查—查询所在索引位置(前闭右开区间)(起始索引:0)print(my_tuple.index(2,1,3))#查-某值数量print(my_tuple.count(1))12345678910Python元组包含了以下内置函数函数方法及描述实例len(tuple)计算元组元素个数>>>tuple1=('Google','Runoob','Taobao')max(tuple)返回元组中元素最大值max(tuple2)min(tuple)返回元组中元素最小值min(tuple2)tuple(iterable)将可迭代系列转换为元组tuple1=tuple(['Google','Taobao','Runoob','Baidu'])3、Dictionary(字典)增删改查my_info={'name':'张三','age':18,'address':'北京市'}#1、查询元素#查-查询单个(无值异常)print(my_info['name'])print(my_info['age'])#查-查询单个(无值返回None)print(my_info.get('name1'))#查-查询单个(无值返回指定值)print(my_info.get('name2','李四'))#2、修改元素my_info['name']='王五'#3、添加元素#添加元素-键不存在则添加my_info['id']=1234#4、删除元素#删除元素-删除单个元素delmy_info['id']#删除-删除字典(查询会报错delmy_info#删除—清空字段(值为{})my_info.clear()123456789101112131415161718192021222324其它API#5、其它API#测量字典中,键值对的个数print(len(my_info))#返回一个包含字典所有KEY的列表print(my_info.keys())#返回一个包含字典所有value的列表print(my_info.values())#返回一个包含所有(键,值)元祖的列表print(my_info.items())123456789101112方法函数及描述dict.clear()删除字典内所有元素dict.copy()返回一个字典的浅复制dict.fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值dict.get(key,default=None)返回指定键的值,如果键不在字典中返回default设置的默认值keyindict如果键在字典dict里返回true,否则返回falsedict.items()以列表返回一个视图对象dict.keys()返回一个视图对象dict.setdefault(key,default=None)类似,但如果键不存在于字典中,将会添加键并将值设为defaultdict.update(dict2)把字典dict2的键/值对更新到dict里dict.values()返回一个视图对象pop(key[,default\])删除字典key(键)所对应的值,返回被删除的值。popitem()返回并删除字典中的最后一对键和值。4、Set(集合)集合(set)是一个无序的不重复元素序列。集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。可以使用大括号{}创建集合,元素之间用逗号,分隔,或者也可以使用set()函数创建集合。#0、创建集合set01={1,2,3,4}#直接使用大括号创建集合set02=set([4,5,6,7])#使用set()函数从列表创建集合#1、增#1-1将元素x添加到集合s中,如果元素已存在,则不进行任何操作。set01.add(100)#1-2添加元素,且参数可以是列表,元组,字典等set01.update([1,2,])#2、删#2-1将元素x从集合s中移除,如果元素不存在,则会发生错误set01.remove(1)#2-2移除集合中的元素,且如果元素不存在,不会发生错误set01.discard(1)#2-3随机删除集合中的一个元素s.pop()#3、其它#判断元素是否在集合内(False)print('1'inset03)#计算集合元素个数print(len(set01))#清空集合set01.clear()12345678910111213141516171819202122232425集合内置方法完整列表方法描述add()为集合添加元素clear()移除集合中的所有元素copy()拷贝一个集合difference()返回多个集合的差集difference_update()移除集合中的元素,该元素在指定的集合也存在。discard()删除集合中指定的元素intersection()返回集合的交集intersection_update()返回集合的交集。isdisjoint()判断两个集合是否包含相同的元素,如果没有返回True,否则返回False。issubset()判断指定集合是否为该方法参数集合的子集。issuperset()判断该方法的参数集合是否为指定集合的子集pop()随机移除元素remove()移除指定元素symmetric_difference()返回两个集合中不重复的元素集合。symmetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。union()返回两个集合的并集update()给集合添加元素len()计算集合元素个数四、其它1、Json方法作用返回类型eval(字符串表达式)eval()函数用来执行一个【字符串表达式】,并返回表达式的值。list、dict、tuplejson.dumps()将python对象编码成Json字符串返回json字符串json.loads()将Json字符串解码成python对象返回python对象json.dump()将python中的对象转化成json储存到文件中无返回json.load()将文件中的json的格式转化成python对象提取出来返回python对象五、其它函数1、print()print(*objects,sep='',end='\n',file=sys.stdout,flush=False)1objects:复数,表示可以一次输出多个对象。输出多个对象时,需要用,分隔。sep:用来间隔多个对象,默认值是一个空格。end:用来设定以什么结尾。默认值是换行符\n,我们可以换成其他字符串。file:要写入的文件对象。flush:输出是否被缓存通常决定于file,但如果flush关键字参数为True,流会被强制刷新。#12345print('1','2','3','4','5')#1+2+3print('1','2','3',sep='+')#1++2++3==print('1','2','3',sep='++',end='==')123456
|
|