参考资料:Python网红Alex b站
文章目录
数据类型——字符串&列表
1. 字符串方法精讲
1_1. 字符串定义
- 字符串是由零个或多个字符组成的有限序列
- 不可变、有索引、可切片、可遍历
1_2. 一切字符串皆对象
1_3. 字符串类型方法
1. 格式化方法
2. 判断方法
3. 查 改 计数 替换
4. 特殊变态方法
1_3_1 格式化方法
a.capitalize() # 首字符改成大写
a.casefold() # 为了方便字符串比对,都改成小写字母
a.center(50,’-’) # 字符串居中,两边填充
a.ljust(15,’-’) # 字符串从左边开始填充满
a.rjust(15,’-’) # 字符串从右边开始填充满
a.lower() # 全变成小写
a.upper() # 全变成大写
a.swapcase() # 大小写互换
a.title() # 改成标题
a.zfill() # 字符串空的地方填入0
a.strip() # 两边去死皮
a.lstrip() # 左边去死皮
a.rstrip() # 右边去死皮
a.format() # 引用外部变量 类似f
# 实例
>>> a = 'this is a book'
>>> a.title()
'This Is A Book'
>>> a.zfill(20)
'000000this is a book'
>>> a = ' Taohy \n '
>>> a.strip()
'Taohy'
>>> a = ' Taohy \n '
>>> a.rstrip()
' Taohy
>>> msg = 'My name is {name}'
>>> msg.format(name = 'Taohy')
'My name is Taohy'
>>> msg = 'My name is {0},age is {1}'
>>> msg.format('Taohy',18)
'My name is Taohy,age is 18'
1_3_2 字符串判断
a.startswith() # 以()开头
a.endswith() # 以()结尾
a.isalnum() # 是不是字母or数字
a.isalpha() # 是不是字母
a.isdecimal() # 不要用 垃圾
a.isdigit() # 是不是数字格式
a.isidentifier() # 是不是合法的可以做变量的名字
a.islower() # 是不是都是小写
a.isupper() # 是不是都是大写
a.isnumeric() # 是不是数字,跟isdigit区别,中文二十五 也是True
a.isprintable() # 是否可打印
a.isspace() # 是否是空格
a.istitile() # 是否是标题
# 实例
>>> phone = '152322189'
>>> phone.startswith('15')
True
>>> phone.endswith('19')
False
>>> phone.isalnum()
True
>>> phone.isalpha()
False
>>> a = '二十五'
>>> a.isnumeric()
True
>>> a.isdigit()
False
1_3_3 字符串查找&计数&修改&替换
a.find() # 查找字符
a.rfind() # 从右边开始查找字符
a.index() # 索引 跟find的区别,找不到index报错,find返回-1
a.rindex() # 从右边开始找索引
a.count() # 字符串出现的次数
a.split() # 默认就是空格拆分
a.rsplit()
a.splitlines() # 按照行(’\r’, ‘\r\n’, \n’)分隔
a.removeprefix() # 去掉前缀
a.removesuffix() # 去掉后缀
a.replace() # 替换
# 实例
>>> a = 'This is a desk'
>>> a.find('i')
2
>>> a.find('b')
-1
>>> a = 'This is a desk'
>>> a.find('i')
2
>>> a.find('b')
-1
>>> a.find('i',4)
5
>>> a.index('b')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> a.find('b')
-1
>>> msg = ' Hello\n my\n name '
>>> msg.splitlines()
[' Hello', ' my', ' name ']
>>> msg = 'China is strong'
>>> msg.removeprefix('Chi')
'na is strong'
>>> msg = 'China is strong'
>>> msg.removesuffix('ong')
'China is str'
1_3_4 特殊变态方法
a.encode() # 字符编码,之后就讲解
a.join() # 把列表转成字符串,每个元素
a.maketrans() # 加密 生成密码本
a.translate() # 加密程序
# 实例:
>>> name = ['selina','elina','aa']
>>> '-'.join(name)
'selina-elina-aa'
2. 字符串练习:开发文本加密小程序
a.maketrans() # 加密 生成密码本
a.translate() # 加密 解密
# 实例2 统计字符、数字、特殊字符的个数
3. 列表精讲
列表特性
有序
有索引、可切片、可遍历
增
li.append(element) # 新增element
li.insert(index,element) # index指定位置插入
# 实例:
>>> li = []
>>> li.append('a')
>>> li
['a']
>>> li.insert(0,'b')
>>> li
['b', 'a']
删
li.clear() # 全部删除
li.pop() # 弹出最后一个
li.remove(element) # 删除指定元素
del li # 删除指定的元素或者删除整个列表
# 实例:
>>> li =[1,'c',98,'de']
>>> li.clear()
>>> li
[]
>>> li =[1,'c',98,'de']
>>> li
[1, 'c', 98, 'de']
>>> li.pop()
'de'
>>> li
[1, 'c', 98]
>>> li.remove('c')
>>> li
[1, 98]
>>> li.remove(98)
>>> li
[1]
改
# 切片
正切
步长
倒切
反转
# 实例
>>> li = [1,2,3,4,5,6,7,8]
>>> li[0:2]
[1, 2]
>>> li[0::2]
[1, 3, 5, 7]
>>> li[0:7:2]
[1, 3, 5, 7]
>>> li[-4:7]
[5, 6, 7]
>>> li[::-1]
[8, 7, 6, 5, 4, 3, 2, 1]
查
'element' in names
names.count(element)
names.index(element)
# 实例
>>> 1 in li
True
>>>> li.count(1)
1
>>> li.count(7)
1
>>> li.index(5)
4
>>>
特殊
names.reverse()
names.sort()
names.extend()
names.copy() # 浅copy
import copy # 深入copy
# 实例
>>> li.reverse()
>>> li
[8, 7, 6, 5, 4, 3, 2, 1]
>>> li = [7,4,3,1,9]
>>> li.sort()
>>> li
[1, 3, 4, 7, 9]
# extend
>>> li = [1,3,4]
>>> li2 = [5,6,7]
>>> li.extend(li2)
>>> li
[1, 3, 4, 5, 6, 7]
# 浅copy
>>> li
[1, 3, 4, 5, 6, 7]
>>> li3 = li.copy()
>>> li3
[1, 3, 4, 5, 6, 7]
>>> li3[1]=10
>>> li3
[1, 10, 4, 5, 6, 7]
>>> li
[1, 3, 4, 5, 6, 7]
>>>
# 列表中嵌入列表,子列表不共用地址
>>> li = [1,2,[3,4],5]
>>> li2 = li.copy()
>>> li2 [2][0]=5
>>> li2
[1, 2, [5, 4], 5]
>>> li
[1, 2, [5, 4], 5]
# 深copy
>>> import copy
>>> li
[1, 2, [5, 4], 5]
>>> li3 = copy.deepcopy(li)
>>> li3
[1, 2, [5, 4], 5]
>>> li3[2][0]=11
>>> li3
[1, 2, [11, 4], 5]
>>> li
[1, 2, [5, 4], 5]
>>>
列表生成器
# 实例
# 普通写法
stuff = []
for i in range(1,32) :
stuff.append('stuff'+str(i))
print(stuff)
#简写 一行代码的时候简写
li = [f'stuff{i}' for i in range(1,32)]
print(li)
4. 列表练习题![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8b6e56efd1124c294871aa3c69b44552.png)
# 1.列表去重
# 2.找到列表中第二大的值
# 3. 统计列表中每个值出现的次数?can not use dict
# 4.判断一件列表是不是另一个列表的子列表
# 5. 求出列表中,离最大值、最小值的平均值,最接近的值
5.实战
1. 双色球选购程序
6.本日作业