day2大海老师之数据类型的操作和方法
1.字符串(str)的操作(不可变类型)
1.什么是字符
电子计算机或无线电通信中字母、数字和各种符号的统称。
2.什么是字符串
由数字、字母、下划线组成的一串字符。
3.字符串的作用
记录描述性质的数据,比如人的名字、性别、家庭地址、公司简介
4.字符串的定义
在引号内按照从左到右的顺序依次包含一个个字符,引号可以是单引号、双引号、三引号
实例
1 | name = '大海' |
1.字符串的简单操作
1 | print(name) |
5.字符串的操作(总结)
1.字符串的操作(查)
1.1.提取单个字符
1 | msg = 'hello world' |
1.2.提取多个字符
1 | # 查 |
1.3.长度len方法(查字符串字符个数)
1 | # # 3、长度len方法 可以计算长度 |
1.4.成员运算
1 | # 成员运算in和not in: 判断一个子字符串是否存在于一个大的字符串中 |
1.5.查找子字符串在大字符串的那个位置:find,index(起始索引)
1 | # 查找子字符串在大字符串的那个位置(起始索引) |
1.6.统计一个子字符串在大字符串中出现的次数:count
1 | msga = 'hello dahai is dsb dahai' |
1.7.判断一个字符串里的数据是不是都是数字:isdigit 返回布尔值
规律带有is开头的方法,返回的是布尔值
1 | mun ='1818' |
1.8.判断每个字符是不是都是字母 isalpha
1 | # 判断每个字符是不是都是字母 isalpha |
字符串里面全是数字,是可以转换乘整型
1 | # 字符串里面全是数字 是可以转换乘整型 |
1.9.比较开头/结尾的元素是否相同:startswith,endswith
1 | # 比较开头的元素是否相同 startswith |
1.10.判断字符串中的值是否全是小写的/大写的:islower,isupper
1 | # 判断字符串中的值是否全是小写的 islower |
2.字符串的操作(增)
2.1.字符串拼接
1 | # # 增 |
2.2.字符串的方法进行增加
1.format格式化拼接字符串
1 | print('my name is {}'.format('大海')) |
2.join(它是把一个列表里面的字符串 拼接起来)
1 | str1 = '真正的勇士' |
3.字符串的操作(删)
1 | # 删 |
4.字符串的操作(改)
4.1.字符串字母全部变大写和变小写:lower,upper
1 | # 改 |
不可变类型的理解
1 | # 字符串是不可变类型 |
4.2.把第一个字母转换成大写:capitalize
1 | letter = 'abcd' |
4.3.把字符串切分成列表:split 默认空格字符切分
1 | # 把字符串切分成列表 split 默认空格字符切分 |
切分split的作用
针对按照某种分隔符组织的字符串,可以用split将其切分成列表,从而进行取值
1 | msggg = 'root:123456' |
4.4.替换:replace(存在的字符, 新的字符,个数)
1 | msgggg = 'dahai你好' |
4.5.去掉字符串左右两边的字符:strip 不写默认是空格字符,不管中间的其他的字符
1 | user = ' user ' |
4.6.添加多余的字符:center,ljust,rjust(了解)
1 | # dahai放中间 * 补充 整体 11字符 |
5.字符串的转义
有些\字母的字符带有含义
\n的意义是竖向换行符
\t的意义是横向换行符 相当于一个tab
1 | # 字符串的转义 |
字符串的反转义
1 | # # 反转义 |
总结
字符串是不可变类型,不能强行改它的原值
所有的方法全是产生了新值
2.数字类型的操作(int/float)(不可变类型)
注意
所有的加了引号的数据类型都是字符串类型
1 | print(type('17')) |
2.1.整数类型(int)
2.1.2.作用
记录年龄,等级,QQ号,各种号码
2.1.2.定义
1 | age = 18 |
2.2.浮点型(float)
2.2.2.作用
记录身高、体重weight、薪资
2.2.2.定义
1 | weight = 151.2 |
数字类型是不可变类型
1 | # 不可变类型 |
2.3.赋值运算
1 | # 赋值运算 |
3.布尔类型(bool)(不可变)
3.1.布尔类型的作用
用来作为判断的条件去用
3.2.布尔值的含义
1 | 布尔值,一个True一个False |
3.3.代码实例
1 | tag = False |
3.4.布尔类型的重点知识
所有的数据类型都自带布尔值
1 | # 重点知识 |
4.列表的操作和方法(list)(可变类型)
4.1.对比之前的数据类型
字符串,数字,布尔,复数 都是一个值(全都是不可变类型)
4.2.列表作用
记录/存多个值,可以方便地取出来指定位置的值,比如人的多个爱好,一堆学生姓名
4.3.列表定义
在[]内用逗号分隔开多个任意类型的值
1 | L = ['dahai',1,1.2,[1.22,'小海']] |
4.4.列表使用
4.4.1.列表的操作(查)
1.列表的取个值(单个索引取值)
1 | # # 索引从0开始 相当于我们书的页码 |
2.列表的取个值(切片,索引范围)
2、切片(顾头不顾尾,步长)
查找列表当中的一段值 [起始值:终止值:步长]
和字符串提取字符一样,只不过字符串取的是字符,列表取的是一个数据类型/元素
1 | name = 'dahai' |
3.查看列表元素有多少个:len
1 | print(len(L)) |
4.成员运算:in和not in
1 | L = ['dahai',1,1.2,[1.22,'小海']] |
5.查看列表某个元素的个数:count
1 | # 查看列表某个元素的个数 count |
6.查看列表的某个值所在的下标/索引:index
1 | # 在列表中从左至右查找指定元素, |
4.4.2.列表的操作(改)
1.索引赋值修改
列表是在原值上面修改,所以是可变类型
1 | # # 原值 索引改 |
字符串做不到在原值上修改所以是不可变类型
1 | # name = 'dahai' |
可变和不可变的id和值的关系
1 | # 值修改,id变 是 不可变类型 |
规律
1 | # 规律列表的修改和增加都不需要重新复制,直接改变了原值,所以是可变类型 |
2.反序:reverse
1 | L.reverse() |
3.对列表中的数字排序:sort
1 | # sort 排序 对数字 |
4.4.3.列表的操作(增)
1.往列表末尾追加一个元素:append
1 | L = ['dahai',1,1.2,[1.22,'小海']] |
2.往列表当中添加多个元素 括号里放列表 也是末尾追加: extend(列表)
1 | # extend(列表) 往列表当中添加多个元素 括号里放列表 也是末尾追加 |
3.往指定索引位置前插入一个元素:insert(索引,元素)
1 | # insert(索引,元素) |
4.4.3.列表的操作(删)
1.变量全部删掉
1 | # 删除 |
2.索引删除:del
1 | # 索引删除 |
3.指定删除:remove
1 | # # 指定删除 |
4.从列表里面拿走一个值(通过索引):pop
1 | # pop # 从列表里面拿走一个值 |
5.清空列表:clear
1 | # 清空列表clear |
5.元组的操作(tuple)(不可变类型)
5.1.元组作用
记录多个值,当多个值没有改的需求,此时用元组更合适
5.2.元组定义
在()内用逗号分隔开多个任意类型的值
1 | t = (1,2,'大海',(2,3),['红海',2,3]) |
5.3.元组的简单使用
5.3.1.取值方式和列表一样
1 | # 简单使用 |
5.3.2.不能修改元组内的元素
1 | # t[0]= 5 |
5.3.3.元组里面列表的值可以修改(因为列表可以修改)
1 | # # 能不能修改要看数据类型所在的容器是否允许修改 |
例子
1 | L = ['西施','顾安','木木',({'name':[4,5,'大海']},'你好丫')] |
5.3.4.元组是不能修改和添加所以元组是不可变类型
1 | # 元组是不能修改和添加所以元组是不可变类型 |
5.3.5.总结
查
与列表一样索引,切片,长度len,count个数,index查找元素所在索引,成员运算
不能 修改 (增 ,改, 删) 不可变类型
6.字典的操作(dict)(可变类型)
6.1.字典作用
记录多个key:value值,优势是每一个值value都有其对应关系/映射关系key,而key对value有描述性的功能
6.2.字典定义
在{}内用逗号分隔开多个key:value元素,其中value可以是任意的数据类型,而key通常应该是字符串类型
1 | info = {'name':'大海','age':18} |
6.3.字典简单使用
1 | # 简单使用 |
6.4.列表和字典的区别
1 | # 列表是依靠索引 |
6.5.字典的操作(增)
1.直接赋值一个不存在的key和value
1 | # 字典的增加操作 |
字典我在添加的时候也没有进行重新赋值,所以字典是可变类型
列表却不行,添加和修改必须是操作 存在 的索引
2.高级添加键值对方法
setdefault(添加,有就不添加,添加的那个字典里面没有就添加)
1 | info = {'name':'大海','age':18} |
6.6.字典的操作(删)
1.清空字典:clear
1 | # # clear 清空字典 |
2.指定删除键值对:del
1 | # # del |
3.pop 删除 返回值是value 实际上就是拿走了字典的value
1 | # pop 删除 返回值是value 实际上就是拿走了字典的value |
6.7.字典的操作(改)
1.赋值添加键值对
1 | # # 改 |
2.update添加键值对
1 | info.update({'name':'xiaohai'}) |
6.8.字典的操作(查)
1.通过键值对直接进行查找
1 | # 查 |
2.get方法查找value
1 | print(info.get('name')) |
3.查看所有的key
1 | # 取出所有的key |
4.查看所有的value
1 | # 取出所有的值 |
5.查看所有的键值对
1 | # 取出所有的键值对 |
6.成员运算
1 | # # 成员运算in和not in:字典的成员运算判断的是key 返回值是布尔类型 |
7.字典 len 查看的是键值对的个数
1 | print(len(info)) |
7.集合操作和方法(set)(可变类型)
7.1.集合的作用
关系运算
7.2.集合定义
在{}内用逗号分开个的多个值
注意
1 | 1.元素不能重复(定义不能这样写相同的) |
1 | s = {1,2,3} |
7.3.集合的使用
1.关系运算
1 | s1 = {'a','b','c'} |
补充集合里面的每一个值都必须是不可变类型
1 | # # 补充 |
2.集合的操作(增)
1 | s = {1,2,3} |
1.添加一个值:add
1 | # # 增 |
2.添加多个值:update
1 | # # # update |
3.集合的操作(删)
1.删 pop 看你的pycharm是怎样无序排列的,从第一个元素删除
1 | # # 删 pop 看你的pycharm是怎样无序排列的,从第一个元素删除 |
2.指定删除remove
1 | # # # 指定删除remove |
4.集合的操作(改)
集合转换成列表进行修改
1 | # 集合转换成列表 |
5.集合去重
1 | # 集合去重 |
8.可变和不可变总结
1 | # id变 值也变 是不可变类型 |