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