str是一个不可变的可迭代对象
任何对str的增删改查均会产生新串
转义字符
\r 将当前位置移到本行开头
\n 将当前位置移到下一行开头
\t 用来表示一个制表符
\\ 转义一个反斜线
\'显示一个单引号
字符串切片获取子串
str1[star: end: step] 不写默认全切 步长默认为1
当步长为负数时,从右边往左边切片下标从-1开始
str1[::-1] 字符串的取反
find 找不到返回-1
str1.find(“text”,index) 查找的文本,从下标即开始找默认是0 从左往右
str1.rfind(“text”,index) 查找的文本,从下标即开始找默认是0 从右往左
index 找不到报错
str1.index(text,index)
字符串的判断
判断是否以指定内容开头(一个字符)
1 startswith ("text")
判断是否以指定内容结尾
2 endswith("text)
判断是否纯字母
3 isalpha()
判断是否是纯数字
4 isdigit()
判断是否由数字和字母组成(纯字母,数字也返回True)
5 isalnum
判断是否只有空格
6 isspace()
统计text 在str 出现的次数
7count(text)
替换
#count 需要替换的文本,替换的文本,替换次数
str1 = "ABCDEAG"
str2 = str1.replace("A","OH",2)
内容分割
#split按分隔符分割内容
split(分隔符,分割次数)
str1 = "A-B-C-D-E-F-G"
#分隔符 步长
res = str1.split("-",2)
print(type(res))
print(res)
返回列表
splitlines()按行分割
# splitlines安装行分割
str1 = "ABCD,EFGH\nIZKL,MNOP"
str2 = str1.splitlines()
print(str2)
返回列表
#partition指定字符串作为分隔符 结果三部分
str1 = "A-B-C-D-E-F-G"
str2 = str1.partition("-")
print(str2)
返回元祖
修改大小写
#upper() 全大写
print("ab cd".upper())
#lower() 全小写
print("AB CD".lower())
#第一个字母大写
print("ab cd".capitalize())
#每个单词的首字母大写
print("ab cd".title())
空格处理
#ljust(width,"填充的内容")width 长度
print("jack".ljust(10,"1"))
print("jack".rjust(10,"1"))
#从 文本两边开始填充到10 字符以1 填充
print("jack".center(10,"1"))
# 爬虫经常用
# 去除左右指定字符
print("11111111jack111111".lstrip("1"))
print("11111111jack111111".rstrip("1"))
# 默认去掉所有的空格
print(" fsdfsfs ".strip())
字符串的拼接
str1 = "A,B,C,D,E,F,G,H"
str2 = str1.split(",")
print(str2) 结果 ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
#str2是一个列表
2
将列表粘贴成字符串
"粘贴的内容".join(list)
str3=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
print("@".join(str3)) 结果A@B@C@D@E@F@G@H
print(type("@".join(str3))) 结果<class 'str'>
print("".join(str3)) 结果ABCDEFGH
就是把两个元素中间间隔变成你指定的把没个元素粘贴起来
字符串格式化
name = “神枪手147”
print(“我是一个杀手叫%s”%name)
17本身只占2个位子 但是我们可以通过修改前面的数值让他占3个位置 这样他和下面的100输出就会对的整整齐齐
print("这个数字是:%3d"%17)
print("这个数字是:%d"%100)
%后面的数值绝定对其方向和站几个位置 正数右对齐 负数左对齐
但是大家一般都是用format 因为太方便了
1
format 的对齐讲解
"{:^20}".format(201)
:等价于%
:^居中对齐的意思
:20 站20个位置
:0 填充0
:< 左对齐
:> 右对齐
:.1f 保留1为小数 .2f两位 以此类推
bytes 字符串
- 单纯作为元素 只负责以二进制字节序列
- 字节流字符串
- 不能包含中文
- b" "
- str 转换byte 用.encode
- bytes转换str用.decode
- 一般用作签名和重要数据加密
md5加密
import hashlib
加密方式
md = hashlib.md5("yjyspassword".encode("utf-8"))
res = md.hexdigest() # 返回16进制字符串
print(res)
这个已经过时了可以用最新的
res = hashlib.sha3_512("123".encode("utf-8")).hexdigest()
print(res)
bytes转换成srt
s2 = "1234".encode("utf-8")
print(s2)
s3 = s2.decode("utf-8")
print(s3)
#字符串翻转操作
aStr
print("aStr"[::-1])结果rtSa