Python学习(二)
目录
- python数据容器
- 数据容器入门
- 数据容器:list(列表)
- list的遍历
- 数据容器:tuple(元组)
- 数据容器:str(字符串)
- 数据容器的切片
- 数据容器:set(集合)
- 数据容器:dict(字典、映射)
- 数据容器的通用操作
- python函数进阶
- 函数的多返回值
- 函数的多种传参方式
- 匿名函数
- python的文件操作
- 文件的编码
- 文件的读取
- 文件的写入
- 文件的追加
python数据容器
数据容器入门
- python数据类型:一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。
- 数据容器根据特点的不同进行分类
- 是否支持重复元素
- 是否可以修改
- 是否有序
- 数据容器的五类:
- 列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
数据容器:list(列表)
- 列表的定义
- 列表内的每一个数据,称之为元素
- 以
[]作为标识 - 列表内每一个元素之间用
,隔开 - 列表可以一个存储多个数据,且可以为不同的数据类型,支持嵌套。

- 列表的下标索引


- 列表的常用操作方法
方法和函数功能一样,有传入参数,有返回值,只是方法的使用格式不同
- 方法的使用:student = Student()
num = student.add(1, 2)
- 方法的使用:student = Student()
列表的查询功能
- 功能:查找指定元素在列表中的下标,如果找不到,会报错ValueError
- 语法:列表.index(元素),index就是列表对象(变量)内置的方法(函数)
- 功能:统计某元素在列表中的数量
- 语法:列表.count(元素)
- 功能:统计列表内,有多少元素
- 语法:len(列表)
- 功能:查找指定元素在列表中的下标,如果找不到,会报错ValueError
列表的修改功能
- 功能:修改特点位置(索引)的元素值
- 语法:列表[下标] = 值
- 功能:插入元素
- 语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素
- 功能:追加单个元素
- 语法:列表.append(元素),将指定元素,追加到列表的尾部
- 功能:追加一批元素
- 语法:列表.extend(其他数据容器),将其他数据容器的内容取出,依次追加到列表尾部
- 功能:元素的删除
- 语法1:del 列表[下标]
- 语法2:列表.pop(下标)
- 功能:删除某元素在列表中的第一个匹配值
- 语法:列表.remove(元素)
- 功能:清空列表内容
- 语法:列表.clear()
- 功能:修改特点位置(索引)的元素值



- 列表的特点
- 可以容纳多个元素
- 可以容纳不同类型的元素
- 数据是有序存储的(有下标序号)
- 允许重复数据存在
- 可以修改(增加或删除元素等)
list的遍历
- 使用while循环对列表进行遍历

- 使用for循环来遍历列表

数据容器:tuple(元组)
- 元组一旦定义完成,就不可以被修改
- 使用小括号定义变量
- 元组定义单个元素的时候,后面需要加上一个括号

- index():查找某个元素,如果数据存在返回对应的下标,否则报错
- count():统计某个数据在当前元组出现的次数
- len(元组):统计元组内的元素个数

- 元组的遍历:while
- 元组的遍历:for

- 注意事项
- 不可以修改元素的内容,否则会报错
- 可以修改元组内的list的内容(修改元素、增加、删除、反转等)
数据容器:str(字符串)
- 字符串也是支持下标索引的
- 字符串是无法修改的数据容器
- index():与前面的index是一样的
- 字符串的替换
- 语法:字符串.replace(字符串1,字符串2)
- 功能:将字符串内的全部:字符串1替换为字符串2
- 注意:不是修改字符串本身,而是得到一个新字符串
- 字符串的切割
- 语法:字符串.split(分隔符字符串)
- 功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中
- 注意:字符串本身不变,而是得到了一个列表对象
- 字符串的规整操作(去前后指定字符串)
- 语法:字符串.strip(字符串)
- 不传入参数默认去掉首尾空格

- 统计字符串中某字符出现的次数:count()
- 字符串的长度:len()
- 遍历字符串:跟上面的一样
数据容器的切片
- 序列:内容连续、有序、可使用下标索引的一类数据容器
- 列表、元组、字符串都可以视为序列
- 切片:
- 概念:从一个序列中,取出来一个子序列
- 语法:序列[起始下标:结束下标:步长]
- 表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列

数据容器:set(集合)
集合最大的特点结束不支持重复元素,并且内容是无序的
语法:使用
{}集合的常用操作-修改
- 集合是无序的,所以集合不支持下标索引访问,但是集合和列表一样,是允许被修改的
- 添加新元素
- add:集合.add(元素)
- 移除元素
- remove:集合.remove(元素)
- 从集合中随机取出元素
- pop:集合.pop()
- 结果:会得到一个元素的结果,同时集合本身被修改,元素被移除。
- 清空元素
- clear:集合.clear()
集合的常用操作
- 取出两个集合的差集
- 语法:集合1.difference(集合2)
- 功能:取出集合1和集合2的差集(集合1有而集合2没有的)
- 结果:得到一个新集合,集合1和集合2不变
- 消除两个集合的差集
- 语法:集合1.difference_update(集合2)
- 功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素
- 结果:集合1被修改,集合2不变
- 两个集合合并
- 集合.union(集合2)
- 功能:将集合1和集合2组合成新集合
- 结果:得到新集合,集合1和集合2不变
- 统计集合元素数量len
- len(集合)
- 取出两个集合的差集
遍历
- 集合不支持下标索引,不能使用while循环

数据容器:dict(字典、映射)
- 字典的定义
- 可以使用字典,实现用key取出value的操作
- 定义:使用
{},不过存储的元素是一个个的键值对,dict也可以定义 - 不可以使用下标索引,通过key值去得到value值
- 字典的key和value可以是任意数据类型(key不可以为字典)

- 字典的常用操作
- 新增元素
- 语法:字典[key]=value
- 结果:字典被修改,新增了元素
- 更新元素
- 语法:字典[key]=value
- 结果:字典被修改,元素被更新
- 注意:字典key不可以重复,所以对已存在的key进行上述操作,就是更新value的值
- 删除元素
- 语法:字典.pop(key)
- 结果:获取指定key的value,同时字典被修改,指定key的数据被删除
- 清空元素
- 字典.clear()
- 获取全部key
- 语法:字典.keys()
- 结果:得到字典中的全部key
- 获取字典的元素数量
- len()
- 新增元素

- 字典的特点总结:
- 可以容纳多个数据
- 可以容纳不同类型的数据
- 每一份数据都是key-value的键值对
- 可以通过key获取value,key不可重复(重复会覆盖)
- 不支持下标索引
- 可以修改(增加或删除更新元素)
数据容器的通用操作
- 遍历上:
- 五类数据容器都支持for循环
- 只有列表、元组、字符串支持while循环,集合、字典不支持
- len(容器)
- max(容器):最大元素
- min(容器):最小函数
- 容器的通用转换功能
- list(容器):将给定容器转换为列表
- str(容器):将给定容器转换为字符串
- tuple(容器):将给定容器转换为元组
- set(容器):将给定容器转换为集合
- 容器通用排序
- sorted(容器,[reverse=True]):将给定容器进行排序
- reverse表示反转
- 排序的结果会变成列表对象
python函数进阶
函数的多返回值
- 函数的多返回值的数据类型没有要求

函数的多种传参方式
- 函数参数种类
- 位置参数:
- 调用函数时根据函数定义的参数位置来传递参数
- 注意:顺序和个数必须一致
- 关键字参数:
- 函数调用时通过
键=值的方式传参 - 函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序
- 函数调用时通过
- 缺省参数:
- 也叫默认参数,用于定义函数,为参数提供默认值,调用时可以不传则会以默认值传入
- 设置默认值的参数必须放在后面
- 不定长参数:
- 也叫可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)
- 不定长参数的类型
- 位置传递:使用
* - 关键字传递:使用
**
- 位置传递:使用
- 位置参数:

匿名函数
- 函数作为参数传递
- 将函数自身传递到其他函数内
- 函数传入的作用:传入计算逻辑,而非传入数据

- lambda匿名函数
- 函数定义的类型:
- def关键字,定义带有名称的函数,可以重复使用
- lambda关键字,可以定义匿名的函数(无名称),只可以临时使用一次
- 匿名函数的定义语法:
- lambda 传入参数:函数体(一行代码)
- 函数定义的类型:

python的文件操作
文件的编码
- 常用的编码:UTF-8、GBK
文件的读取
- 文件的操作主要包括打开、关闭、读、写等操作
- 打开文件:open(name,mode,encoding)
- name:是要打开的目标文件的字符串(可以包含文件所在的具体路径)
- mode:设置打开文件的模式(访问模式):只读
(r)、写入(w)、追加(a)等 - encoding:编码格式
- 读操作相关方法
- read()方法:文件对象.read(num)
- num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。
- readlines()方法:
- 读取多行内容
- 可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个
列表,其中每一行的数据为一个元素
- readline()方法
- 一次读取一行内容
- for循环读取文件行
- close():关闭文件对象
- with open语法:自动完成对文件的close
- read()方法:文件对象.read(num)

文件的写入
- write():文件写入
- flush():内容刷新
- 注意:
- w模式,文件不存在,会创建新文件
- w模式,文件存在,会清空原有文件
- close()方法,带有flush()方法的功能
文件的追加
- 模式替换为a
- 文件存在会追加
- 文件不存在会创建文件
- 可以使用”\n”来写入换行符
第二部分学完了,继续加油……
如果文章有何不妥之处,请您指出。持续更新中……