第二周小结
一、元组用法 1、索引 | 切片 | 长度 2、.count(obj)查看元素的个数 3、.index(obj,bindex,eindex)查看元素索引,可以指定从第几个开始到第几个结束 4、有序存储,可存放多个数据,不可变(内部可以包含可变对象,可变对象依旧可变) 5、应用场景:将不允许操作的列表转为为元组,将允许操作的元组转为列表 二、字典用法 1、无序,存放多个值,可变,通过key取值 2、常见操作:dic[key] = value? #key存在就是改,不存在就是增 ? ? ? ? ? ? ? ? ? ? ? ? dic[key] :取值,如果key不存在就报错,所以用get(key,defalut) ? ? ? ? ? ? ? ? ? ? ? ? ?update({‘a‘:100,‘c‘:300}):key存在就更新,不存在就新增 ? ? ? ? ? ? ? ? ? ? ? ? ?pop(key):根据key删且返回对应的value ? ? ? ? ? ? ? ? ? ? ? ? ? dic.setdafault(key,None) key存在不操作,key不存在,dic[key] = default ? ? ? ? ? ? ? ? ? ? ? ? ? dic.clear() 删除字典中的所有元素 ? ? ? ? ? ? ? ? ? ? ? ? ? dic.keys()返回一个包含所有key的列表 ? ? ? ? ? ? ? ? ? ? ? ? ? ?dic.valuess()返回一个包含所有values的列表 ? ? ? ? ? ? ? ? ? ? ? ? ? ?dic.items()返回一个包含所有(键,值)元组的列表 ? ? ? ? ? ? ? ? ? ? ? ? ? ?dic.get(key,default=None)返回字典中key对应的值,若key不存在,则返回default的值,默认为None 三、集合用法 1、数据具有唯一性(去重) 2、无序存储:没有key,没有索引,无法取值 3、可变数据类型,内部可以存放任意类型数据,但数据具有唯一性 4、交集&:两个集合共同存在的? ?#还是以集合的形式取出 5、并集 | :两个集合的合并 6、差集 -:p_set - l_set? ?#p集合去掉l集合中的一样的元素 7、对称差集^:p_set ^ l_set? ? #两个集合去掉相同的元素在合并到一起 8、判断两个集合是不是不想交? p_set.isdisjoint(l_set)? ? #不相交就返回True 9、update():可以支持同时传入多个参数,不管是列表还是字符串都会把每个元素拆开了加进去(去重) 10、add():只能加一个 11、集合删除单个元素有两种方法:set.discard(x):元素不在集合中时,不会报错。而set.remove(x):元素不在集合中时会报错 12、pop():由于集合是无序的,所以返回的值不能确定,且当集合为空时会报错 四、字符编码 1、乱码:存数据与读数据采用的编码表不一致 2、py2中默认按ASCII来解释文件内容,py3中默认按utf-8来解释文件内容 3、文件头:#encoding:编码表 ? ? ? 功能:告诉py解释器按照什么编码来解释文件内容 4、Unicode以定长(2字节)存取数据 5、utf-8以变长(1-6字节)存取数据,因为大量数据都是以英文存在,所以utf-8空间更小,传输速度更快 6、原义字符串:r‘abcnabc‘? ? ? #? ‘abcnabc‘ 7、u‘‘与b‘‘之间相互转化 编码:u‘‘.encode(‘utf-8‘)? ? ?? 解码:b‘‘.decode(‘utf-8‘)? ? ?#解码后以字符串的形式存在 五、文件操作 1、with open(‘文件路径‘,‘模式’,encoding= ‘utf-8‘)as f : 2、line = f.readline()? ? ?#一次读一行 3、line = f.readlines()? ?#按行一次性全部读出 4、for line in f:? ? ? ? ? #逐步一行一行读 5、write :文件不存在会新建文件再操作,文件存在会先清空文件再操作 6、文件的复制:for line in f1: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?f2.write(line) 7、非文本类型采用b模式,不需要考虑编码问题 8、游标(seek):必须在b模式下操作,seek中偏移的是字节 9、seek(偏移量,偏移位置) 偏移位置: ? ? ? ? ? ?0? 文件开头 ? ? ? ? ? ?1? 当前位置 ? ? ? ? ? ?2? ?文件末尾 六、函数:存放代码块的容器(重复利用的工具) 1、函数四部分: ? ? ?函数名:调用函数的依据 ? ? ?函数体:实现功能的代码块 ? ? ?参数列表:完成功能需要的条件信息 ? ? ?返回值:功能完成的反馈结果 2、使用函数 ? ? ?函数名:拿到函数的地址 ? ? ?函数名():拿到函数的地址,并执行函数中存放的代码块(函数体) ? ? ?函数名(参数):执行函数并传入参数 ? ? ?函数名():执行完毕后,会得到函数的返回值,返回值就跟普通变量一样,可以直接打印、使用、运算 3、函数的分类: 无参函数:不需要外界传参 有参函数:需要外界传参 空返回:返回None 空return :用来结束函数 4、函数的嵌套:在一个函数的内部调用另一个函数 5、实参: 位置实参:不用明确形参名的传参方式,一定按照位置给形参传值 关键字实参:必须明确形参名字与值为形参传值,可以不用按照顺序 关键字实参必须在位置实参后面 6、形参: 位置形参:可以由位置实参与关键字实参来传值 默认形参:可以由位置实参与关键字实参来传值,还可以不用传值(采用自身默认值) 可变长形参args:以元组形式接受位置形参与默认形参未接受的所有传入的位置实参,用索引来取第几个,只能由位置实参来传值 关键字形参:出现在*之后的形参,必须由关键字实参来传值,没有顺序 可变长关键字形参kwargs:用来接受没有被关键字形参接受完的关键字形参,也只能由关键字实参来传值,用字典来存放数据 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |