第二章python数据类型详解
• 一、字符串
• 二、下标
• 三、切片
• 四、常用操作方法
• 五、列表//列表数据为可变类型
• 六、元组tuple元组的数据是不能修改的
• 七、字典//可变数据类型
• 八、集合:可变类型数据
• 九、公共操作
• 十、推倒式
 
一、字符串
1. 单引号和双引号、三引号都可以定义字符串
2. 三引号支持输出换行
 “”"
 am Tom"""3. 单双引号不支持
 ‘I’
 ‘am’
 //输出I am4. ’ 当有三个’加一个\转译中间的//如’i’m tom ’
二、下标
又叫索引,就是编号:精确找到一串字符中的某个字符
1. 字符串变量[n]//找字符串中的第n个数据
三、切片
是指对操作对象截取其中一部分的操作。字符串、列表、元组都可用
1. 序列[开始位置下标:结束位置下标:步长]//注意取的数据不包括结束位置下标
2. 不写步长默认步长为1
3. 不写开始位置默认从0开始
4. 不写结束表示选取到最后
5. 都不写表示所有
6. 如果步长为负数,从后往前
7. -1代表最后一个数据,依此类推
8. 如果开始结束的方向和步长方向相反不能选出数据
四、常用操作方法
• 查找
1. 字符串查找:查找字串在字符串中的位置或出现的次数
2. find()找字串是否在字符串中,在返回第一个字串开始下标,不在返回-1
3. 字符串序列.find(字串,开始位置下标,结束位置下标)
4. index()查找和find一样不过没有找到就报错
5. 字符串序列.count(字串,开始位置下标,结束位置下标)//找字串出现次数
6. rfind()和find()一样不过是从右边开始找
7. rindex()和rfind()类似
 怎么返回目标字串的所有字串????写一个循环or利用切片8. 字符串修改:指的就是通过函数的形式修改字符串中的数据
9. replace()替换
 字符串序列.replace(旧字串,新字串,替换次数)
 替换次数不写代表全部替换。
 replace有返回值,需要去接受,调用不会修改值,说明字符串是不可变数据类型。10. split()分割,丢失分割字符,返回一个列表,但可以直接打印
 字符串序列.split(分割字符,分割次数)11. join()//合并列表里面的数据为一个大字符串
 连接的字符或字串.join(多字符串组成的序列)//返回一个字符串,可以直接打印输出
 调用方式字符串.函数12. capitalize():将字符串第一个字符转成大写,后面的字符都变成小写//
13. title()//每个单词首字母大写
14. lower():将字符串中大写转小写
15. upper():小写转大写
16. lstrip():删除字符左侧空白字符
17. rstrip():删除字符右侧空白字符
18. strip():删除字符串两侧空白字符
 填充:19. ljust():返回一个原字符串左对齐,并指定字符(默认空格)填充至对应长度的新字符
 字符串序列.ljust(长度,‘填充字符’)
 rjust()右对齐
 center()中间对齐
 判断:20. startswith():检查字符串是否以某个字串开头,只要开头对应就返回true
 字符串序列.startswith(字串,开始位置下标,结束位置下标)
 endswith():结尾判断21. isalpha():字符串至少有一个字符,所有字符都是字母返回真
22. isdigit():如果字符串只包含数字返回true
23. isalnum():字符串全是字符或者数字返回true
24. isspace():如果字符串中只包含空白则返回true
五、列表//列表数据为可变类型
列表的应用场景  
	列表的格式  
	列表的常用操作  
	列表的循环遍历  
	列表的嵌套使用[数据1,数据2,…]//列表可以存不同类型的数据
• 查找
 1.下标 序列名[]
 2.index()和count()与字符串一样//count在列表调用只有一个参数
 3.len(序列名),统计序列数据个数
 4.判断某个数据是否存在
 ‘子序列’ in 序列名字//判断在返回True
 ‘子序列’ not in 序列名字//判断不在返回True
 判断账号注销
 增加:增加指定数据到列表中
 5.append()//结尾加数据
 列表序列.append(数据)
 如果追加数据是数列整个数列加入
 extend()把数据拆来加到结尾,只拆开一级
 6.insert()//指定位置插入
 序列名字.insert(位置下标,数据)• 删除:
 7.del 目标 or del (目标)//删除目标
 删除下标也可以
 8.序列名字.pop(下标)删除指定下标的数据,如果不指定下标,默认删除最后一个数据,pop()最后会返回删除数据
 9.序列名字.remove(‘数据’)只删除第一个数据
 10.序列名字.clear() 清空列表• 修改:
 11.序列名[n] = ’ 替换字符串’修改指定下标
 12.序列名字.reverse()逆序排列
 13.序列名字.sort(key = None,reverse = False)排序
 不写参数默认升序排序
 False升序,True降序• 复制:
 14.列表序列名.copy()
 15.为什么要复制,数据来之不易• 列表的循环遍历//按顺序依次访问到每一个数据
 16.while/for• 列表嵌套:
 17.序列名字 = [[’’,’’,’’],[’’,’’,’’],[’’,’’,’’]]
 18.列表嵌套数据查询
 序列名字[][][] //大列表小列表小小列表的下标作业1随机分配办公室:8位老师,随机分配到三个办公室
六、元组tuple元组的数据是不能修改的
元组的应用场景  
	定义元组  
	元组的常见操作1. t1 = (数据1,数据2,数据3)//可以是不同的类型
2. 元组里面一定要加逗号,不然()没有逗号相当于无效括号
3. 查找 下标 index() 、count() 、len()
4. 元组里面列表的数据可以修改(’’,[])//列表可以修改
七、字典//可变数据类型
字典的应用场景//不支持下标无论数据如何变化只用找到对应的键值对  
	创建字典的语法  
	字典常见操作字典的循环遍历
 1.{‘键值对1’:‘数据1’,‘键值对2’:‘数据2’}
 2.创建空字典变量 = {} or 变量 = dict()• 增
 1.字典序列[key]=值 key存在修改这个值,不存在增加这个值• 删
 1.del(删除字典或删除字典中指定键值对)
 del 字典名字[‘键值对’] :
 2.字典名字.clear()清空字典• 改
 1.字典序列[key]=值• 查:
 1.key值查找 字典名字[‘键值对’]
 2.get()
 字典序列.get(key,默认值)
 如果当前查找的key不存在则直接返回默认值,省略默认值则返回None
 3.keys()
 字典序列.keys()//查看字典所有的键值对,返回可迭代对象
 4.字典序列.values()//查看字典的所有值
 5.字典序列.items()//查找字典中所有的键值对,返回可迭代对象,里面的数据是元组,元组数据1是字典的key,数据2是value
 字典的循环遍历:
 1.遍历字典的key
 2.遍历字典的value
 3.遍历字典的元素
 for 变量1,变量2 in 字典序列.items():
 print(f’{变量1}={变量2}’)八、集合:可变类型数据
1.创建集合使用{,},或set()
 集合没有顺序,不支持下标
 集合中会去除重复数据
 空集合只能用set(),{}是字典
 集合会自动排序• 增加数据
 1.增加集合名字.add(单一数据)追加单一数据
 2.updata(序列):增加的数据只能是是序列• 删除数据
 1.集合.remove(数据) 删除指定数据,不存在就报错
 2.集合.discard(数据)删除指定数据,不存在不会报错
 3.集合.pop()随机删除某个数据并返回该数据• 查找数据
 1.in
 数据 in 集合//在集合里返回true
 2.not in
 数据 not in 集合//不在集合里返回true九、公共操作
运算符  
	公共方法  
	容器类型转换  
	运算符1.+ * 不支持字典
 2.str1+str2相当于合并
 3.list1+list2
 4.tuple1+tuple2
 5.str1 * 10//相当于复制10次
 6.list1 * 10//
 7.tuple * 10//
 8.判断的序列 in 序列 //判断数据是否存在
 9.not in//判断数据不存在
 10.公共操作1. len(序列)//计算容器中元素个数
2. del(序列名字 or 序列[n] )//删除
3. max(序列名字)//返回容器中的元素最大值
4. min(序列名字)//返回元素中的最小值
5. range(start,end,step)//生成从start到end前的数字(不包括end数字),步长为step,供for循环使用
6. enumerate(可遍历对象,start=0)//将一个可遍历的数据对象(如元组或字符串)组合为一个索引序列,同时列出数据和下标 //返回数据是元祖
7. start参数用来设置遍历数据的下标起始值,默认为0
8. for index,char in enumerate(list1,start = 1)
9. 容器类型转换
 1.tuple(转换序列)//将某个序列转换成元组
 2.list(转换序列)//将某个序列转换成列表
 3.set(转换序列)//将某个序列转换成集合
 集合可以快速完成列表去重,集合不支持下标十、推倒式
列表推导式 化简代码
 1.[返回值 for xx in range()if XX %2 == 0]
 多个for循环实现列表推导式等同于for循环嵌套
 list字典推导式//快速合并列表为字典,提取字典中目标数据
 2.{xx1 : xx2 for …in…}
 如果两个列表数据个数不同len(需要统计少的)集合推倒式
 3.{xx for xx in …}
 集合有去重功能