今天主要学习字符串的相关操作。
1. 字符串
字符串属于不可变的字符序列
字符串的驻留机制 : python只保留一份内容相同的字符串,后续创建相同内容字符串时,不会开辟新的空间
a = '10'
b = '10'
c = '10'
print( a , id(a))
print( b , id(b))
print( c , id(c))
实例中a ,b ,c 变量指向同一个id
1.1 字符串的查询
index 函数 : 查找子字符串第一次出现的位置, 若是不存在报ValueError
rindex 函数 : 查找字符串最后出现的位子, 若是不存在报ValueError
find 函数: 查找子字符串第一次出现的位置, 不存在返回-1
rfind 函数 : 查找子字符串最后一次出现的位置, 不存在返回-1
var1 = "tangxuan"
suffix1 = var1.index("a")
suffix2 = var1.rindex("a")
suffix3 = var1.find("a")
suffix4 = var1.rfind("a")
print(suffix1)
print(suffix2)
print(suffix3)
print(suffix4)
1.2 字符串大小写转换
upper 将所有字符转换为大写
lower 将所有的字符转换为小写
swapcase 大写转换为小写 , 小写转换为大写
title 每个单词的第一个字母大写
print(var1.upper())
print(var1.lower())
print(var1.swapcase())
print(var1.title())
1.3 字符串的对齐操作
center 中间对齐, 第一个参数是字符串占位长度, 第二个参数是填充字符 默认是空格
ljust 左对齐 , 第一个参数是字符串占位长度, 第二个参数是填充字符 默认是空格
rjust 右对齐 , 第一个参数是字符串占位长度, 第二个参数是填充字符 默认是空格
zfill 右对齐, 只有一个长度参数 , 填充字符为0
print(var1.center(20 , "*")) # 中间对齐 , 填充*
print(var1.ljust(20 , "*")) # 左对齐 , 填充*
print(var1.rjust(20 , "*")) # 右对齐 , 填充*
print(var1.zfill(20)) # 右对齐, 填充0
1.4 字符串的拆分
split 函数 , 默认参数是空格 , sep参数指定拆分字符 , maxsplit 指定最大拆分次数 , 从左侧开始拆分 , rsplit从右侧开始拆分 , 结果输出为一个列表
str1 = "hello|World|python"
print(str1.split())
print(str1.split(sep='|'))
print(str1.split(sep= '|' , maxsplit=1))
1.5 合并操作
join函数 , 与split 正好相反, 将列表或者元组合并成一个字符串
lst2 = ["tang" , "xuan"]
print("|".join(lst2))
1.6 字符串的常用判断操作方法
print(str1.isidentifier()) # 判断是否为标识符
print(str1.isspace()) # 判断是否为空白字符,
print(str1.isalpha()) #判断是否全部由字符组成
print(str1.isnumeric()) #判断是否全部由数字组成
print(str1.isalnum()) #判断是否全部哟字母或者数字组成
1.7 字符串的替换
replace 函数 , 第一个参数是被替换的字符, 第二个是需要替换的字符, 第三个是最大的替换次数
str2 = "tangxuan"
print(str2.replace("a" , "b"))
print(str2.replace("a" , "b" , 1))
1.8 字符串的切片操作
基本用法和列表的操作类似 , 但字符串不可修改 , 会生成一个新的字符串
str3 = "tangxuan"
print(str3[0:5])
print(str3[1:5])
print(str3[:5])
print(str3[6:])
1.9 字符串的编码和解码
encode 字符串的编码
decode 字符串的解码
str1 = "唐旋是菜狗"
str1_encode1 = str1.encode(encoding="GBK") # GBK 一个汉字占有两个字节
str1_encode2 = str1.encode(encoding="utf-8") # UTF 一个汉字占三个字节
print(str1_encode1)
print(str1_encode2)
print(str1_encode1.decode(encoding="GBK"))
print(str1_encode2.decode(encoding="utf-8"))
字符串的操作还是很重要的 , 希望对每一个部分都有印象 , 再次感谢B站up主 -- Python_子木 提供的学习视频