字符串一般操作
字符串拼接
方式1
str1 + str2
方式2
str1str2
直接把两个字符串放一块
方式3
”xxx%sxxx“%(a+b)
方式4
字符串乘法
"abc" * 3
"abcabcabc"
# 字符串拼接
# 方式1
n = "woshi" + "god"
n1 = "woshigod"
print(n)
print(n1)
# 方式2
n2 = "woshi" "god"
print(n2)
# 方式3
n3 = "woshi%s"%"god"
print(n3)
# 方式4
n4 = "abcd" * 4
print(n4)
字符串切片
概念
获取一个字符串的某个片段
获取某一个字符
name[下标]
下标
字符串中每个字符的编号
座位编号
注意
下标越界
负数下标
如果为负数, 则会从尾部开始定位
最后一个字符为 -1
获取一个字符串片段
name[起始:结束:步长]
注意
获取范围
[起始, 结束)
起始包含
结束不包含
默认值
起始默认值: 0
结束默认值: len(name)
整个字符串的长度
步长默认值: 1
获取顺序
步长 > 0
从左边到右
步长 < 0
从右往左
注意: 不能从头部跳到尾部, 或者从尾部跳到头部
特殊案例
反转字符串
字符串[::-1]
# 字符串切片
n = "werdfspace"
# 获取下标字母
print(n[0])
# 带起终点位置
print(n[4:8:2])
# 反转
print(n[len(n):0:-1])
字符串函数操作
字符串函数操作
使用方式
小旗子的代表是内建函数, 直接使用
不带小旗子的属于对象方法
对象.方法(参数)
len
作用
计算字符串的字符个数
语法
len(name)
参数
字符串
返回值
整型
字符个数
find
作用
查找子串索引位置
语法
find(sub, start=0, end=len(str))
参数
参数1-sub
需要检索的字符串
参数2-start
检索的起始位置
可省略, 默认0
参数3-end
检索的结束位置
可省略, 默认len(str)
返回值
找到了
指定索引
整型
找不到
-1
注意
从左到右进行查找
找到后立即停止
rfind
功能使用, 同find
区别
从右往左进行查找
index
作用
获取子串索引位置
语法
index(sub, start=0, end=len(str))
参数
参数1-sub
需要检索的字符串
参数2-start
检索的起始位置
可省略, 默认0
参数3-end
检索的结束位置
可省略, 默认len(str)
返回值
找到了
指定索引
整型
找不到
异常
注意
从左到右进行查找
找到后立即停止
rindex
功能使用, 同index
区别
从右往左进行查找
count
作用
计算某个子字符串的出现个数
语法
count(sub, start=0, end=len(str))
参数
参数1-sub
需要检索的字符串
参数2-start
检索的起始位置
可省略, 默认0
参数3-end
检索的结束位置
可省略, 默认len(str)
返回值
子字符串出现的个数
整型
replace
作用
使用给定的新字符串 替换原字符串中的 旧字符串
语法
replace(old, new[, count])
参数
参数1-old
需要被替换的旧字符串
参数2-new
替换后的新字符串
参数3-count
替换的个数
可省略, 表示替换全部
返回值
替换后的结果字符串
注意
并不会修改原字符串本身
# 查找计算
n = "wo ai zhong guo"
# len
# 作用
# 计算字符串的字符个数
# 语法
# len(name)
# 参数
# 字符串
# 返回值
# 整型
# 字符个数
print(len(n))
# find
# 作用
# 查找子串索引位置
# 语法
# find(sub, start=0, end=len(str))
# 参数
# 参数1-sub
# 需要检索的字符串
# 参数2-start
# 检索的起始位置
# 可省略, 默认0
# 参数3-end
# 检索的结束位置
# 可省略, 默认len(str)
# 返回值
# 找到了
# 指定索引
# 整型
# 找不到
# -1
# 注意
# 从左到右进行查找
# 找到后立即停止
print(n.find("ai",0,len(n)))
# rfind
# 功能使用, 同find
# 区别
# 从右往左进行查找
print(n.rfind("ai",0,len(n)))
# index
# 作用
# 获取子串索引位置
# 语法
# index(sub, start=0, end=len(str))
# 参数
# 参数1-sub
# 需要检索的字符串
# 参数2-start
# 检索的起始位置
# 可省略, 默认0
# 参数3-end
# 检索的结束位置
# 可省略, 默认len(str)
# 返回值
# 找到了
# 指定索引
# 整型
# 找不到
# 异常
# 注意
# 从左到右进行查找
# 找到后立即停止
print(n.index("wo",0,len(n)))
# rindex
# 功能使用, 同index
# 区别
# 从右往左进行查找
print(n.rindex("guo",0,len(n)))
# count
# 作用
# 计算某个子字符串的出现个数
# 语法
# count(sub, start=0, end=len(str))
# 参数
# 参数1-sub
# 需要检索的字符串
# 参数2-start
# 检索的起始位置
# 可省略, 默认0
# 参数3-end
# 检索的结束位置
# 可省略, 默认len(str)
# 返回值
# 子字符串出现的个数
# 整型
m = "hahahahhahhahhahahhahahh"
print(m.count("ha"))
capitalize
作用
将字符串首字母变为大写
语法
capitalize()
参数
无
返回值
首字符大写后的新字符串
注意
并不会修改原字符串本身
title
作用
将字符串每个单词的首字母变为大写
语法
title()
参数
无
返回值
每个单词首字符大写后的新字符串
注意
并不会修改原字符串本身
lower
作用
将字符串每个字符都变为小写
语法
title()
参数
无
返回值
全部变为小写后的新字符串
注意
并不会修改原字符串本身
upper
作用
将字符串每个字符都变为大写
语法
upper()
参数
无
返回值
全部变为大写后的新字符串
注意
并不会修改原字符串本身
# 转换
# replace
# 作用
# 使用给定的新字符串 替换原字符串中的 旧字符串
# 语法
# replace(old, new[, count])
# 参数
# 参数1-old
# 需要被替换的旧字符串
# 参数2-new
# 替换后的新字符串
# 参数3-count
# 替换的个数
# 可省略, 表示替换全部
# 返回值
# 替换后的结果字符串
# 注意
# 并不会修改原字符串本身
n = "hahahhhahahhahah"
print(n.replace("ha","lj"))
# capitalize
# 作用
# 将字符串首字母变为大写
# 语法
# capitalize()
# 参数
# 无
# 返回值
# 首字符大写后的新字符串
# 注意
# 并不会修改原字符串本身
print(n.capitalize())
# title
# 作用
# 将字符串每个单词的首字母变为大写
# 语法
# title()
# 参数
# 无
# 返回值
# 每个单词首字符大写后的新字符串
# 注意
# 并不会修改原字符串本身"
m = "wo ai zhong guo"
print(m.title())
# lower
# 作用
# 将字符串每个字符都变为小写
# 语法
# title()
# 参数
# 无
# 返回值
# 全部变为小写后的新字符串
# 注意
# 并不会修改原字符串本身
N = "NIMEN ZUI BANG"
print(N.lower())
# upper
# 作用
# 将字符串每个字符都变为大写
# 语法
# upper()
# 参数
# 无
# 返回值
# 全部变为大写后的新字符串
# 注意
# 并不会修改原始字符串
u = "xiao xie"
print(u.upper())
ljust
作用
根据指定字符(1个), 将原字符串填充够指定长度
l
表示原字符串靠左
语法
ljust(width, fillchar)
参数
参数1-width
指定结果字符串的长度
参数2-fillchar
如果原字符串长度 < 指定长度时
填充过去的字符
返回值
填充完毕的结果字符串
注意
不会修改原字符串
填充字符的长度为1
只有原字符串长度 < 指定结果长度时才会填充
rjust
作用
根据指定字符(1个), 将原字符串填充够指定长度
r
表示原字符串靠右
语法
rjust(width, fillchar)
参数
参数1-width
指定结果字符串的长度
参数2-fillchar
如果原字符串长度 < 指定长度时
填充过去的字符
返回值
填充完毕的结果字符串
注意
不会修改原字符串
填充字符的长度为1
只有原字符串长度 < 指定结果长度时才会填充
center
作用
根据指定字符(1个), 将原字符串填充够指定长度
center
表示原字符串居中
语法
center(width, fillchar)
参数
参数1-width
指定结果字符串的长度
参数2-fillchar
如果原字符串长度 < 指定长度时
填充过去的字符
返回值
填充完毕的结果字符串
注意
不会修改原字符串
填充字符的长度为1
只有原字符串长度 < 指定结果长度时才会填充
lstrip
作用
移除所有原字符串指定字符(默认为空白字符)
l
表示从左侧开始移除
语法
lstrip(chars)
参数
参数-chars
需要移除的字符集
表现形式为字符串
"abc"
表示,"a"|"b"|"c"
返回值
移除完毕的结果字符串
注意
不会修改原字符串
rstrip
作用
移除所有原字符串指定字符(默认为空白字符)
r
表示从右侧开始移除
语法
rstrip(chars)
参数
参数-chars
需要移除的字符集
表现形式为字符串
"abc"
表示,"a"|"b"|"c"
返回值
移除完毕的结果字符串
注意
不会修改原字符串
# 填充压缩
# ljust
# 作用
# 根据指定字符(1个), 将原字符串填充够指定长度
# l
# 表示原字符串靠左
# 语法
# ljust(width, fillchar)
# 参数
# 参数1-width
# 指定结果字符串的长度
# 参数2-fillchar
# 如果原字符串长度 < 指定长度时
# 填充过去的字符
# 返回值
# 填充完毕的结果字符串
# 注意
# 不会修改原字符串
# 填充字符的长度为1
# 只有原字符串长度 < 指定结果长度时才会填充
n = "xyz"
print(n.ljust(7,"t"))
# rjust
# 作用
# 根据指定字符(1个), 将原字符串填充够指定长度
# r
# 表示原字符串靠右
# 语法
# rjust(width, fillchar)
# 参数
# 参数1-width
# 指定结果字符串的长度
# 参数2-fillchar
# 如果原字符串长度 < 指定长度时
# 填充过去的字符
# 返回值
# 填充完毕的结果字符串
# 注意
# 不会修改原字符串
# 填充字符的长度为1
# 只有原字符串长度 < 指定结果长度时才会填充
m = "xyz"
print(m.rjust(7,"t"))
# center
# 作用
# 根据指定字符(1个), 将原字符串填充够指定长度
# center
# 表示原字符串居中
# 语法
# center(width, fillchar)
# 参数
# 参数1-width
# 指定结果字符串的长度
# 参数2-fillchar
# 如果原字符串长度 < 指定长度时
# 填充过去的字符
# 返回值
# 填充完毕的结果字符串
# 注意
# 不会修改原字符串
# 填充字符的长度为1
# 只有原字符串长度 < 指定结果长度时才会填充
x = "xyz"
print(x.center(7,"t"))
# lstrip
# 作用
# 移除所有原字符串指定字符(默认为空白字符)
# l
# 表示从左侧开始移除
# 语法
# lstrip(chars)
# 参数
# 参数-chars
# 需要移除的字符集
# 表现形式为字符串
# "abc"
# 表示,"a"|"b"|"c"
# 返回值
# 移除完毕的结果字符串
# 注意
# 不会修改原字符串
stripl = "kongbai zou yi chu"
print(stripl.lstrip("ko"))
# rstrip
# 作用
# 移除所有原字符串指定字符(默认为空白字符)
# r
# 表示从右侧开始移除
# 语法
# rstrip(chars)
# 参数
# 参数-chars
# 需要移除的字符集
# 表现形式为字符串
# "abc"
# 表示,"a"|"b"|"c"
# 返回值
# 移除完毕的结果字符串
# 注意
# 不会修改原字符串
stripl = "kongbai zou yi chu"
print(stripl.rstrip("u"))
split
作用
将一个大的字符串分割成几个子字符串
语法
split(sep, maxsplit)
参数
参数1-sep
分隔符
参数2-maxsplit
最大的分割次数
可省略, 有多少分割多少
返回值
分割后的子字符串, 组成的列表
list 列表类型
注意
并不会修改原字符串本身
partition
作用
根据指定的分隔符, 返回(分隔符左侧内容, 分隔符, 分隔符右侧内容)
语法
partition(sep)
参数
参数-sep
分隔符
返回值
如果查找到分隔符
(分隔符左侧内容, 分隔符, 分隔符右侧内容)
tuple 类型
如果没有查找到分隔符
(原字符串, "", "")
tuple 类型
注意
不会修改原字符串
从左侧开始查找分隔符
rpartition
作用
根据指定的分隔符, 返回(分隔符左侧内容, 分隔符, 分隔符右侧内容)
r
表示从右侧开始查找分隔符
语法
partition(sep)
参数
参数-sep
分隔符
返回值
如果查找到分隔符
(分隔符左侧内容, 分隔符, 分隔符右侧内容)
tuple 类型
如果没有查找到分隔符
(原字符串, "", "")
tuple 类型
注意
不会修改原字符串
从右侧开始查找分隔符
splitlines
作用
按照换行符(\r, \n), 将字符串拆成多个元素, 保存到列表中
语法
splitlines(keepends)
参数
参数-keepends
是否保留换行符
bool 类型
返回值
被换行符分割的多个字符串, 作为元素组成的列表
list 类型
注意
不会修改原字符串
join
作用
根据指定字符串, 将给定的可迭代对象, 进行拼接, 得到拼接后的字符串
语法
join(iterable)
参数
iterable
可迭代的对象
字符串
元组
列表
...
返回值
拼接好的新字符串
# 分割拼接
# split
# 作用
# 将一个大的字符串分割成几个子字符串
# 语法
# split(sep, maxsplit)
# 参数
# 参数1-sep
# 分隔符
# 参数2-maxsplit
# 最大的分割次数
# 可省略, 有多少分割多少
# 返回值
# 分割后的子字符串, 组成的列表
# list 列表类型
# 注意
# 并不会修改原字符串本身
information = "wang-176-65-010"
print(information.split("-"))
# partition
# 作用
# 根据指定的分隔符, 返回(分隔符左侧内容, 分隔符, 分隔符右侧内容)
# 语法
# partition(sep)
# 参数
# 参数-sep
# 分隔符
# 返回值
# 如果查找到分隔符
# (分隔符左侧内容, 分隔符, 分隔符右侧内容)
# tuple 类型
# 如果没有查找到分隔符
# (原字符串, "", "")
# tuple 类型
# 注意
# 不会修改原字符串
# 从左侧开始查找分隔符
print(information.partition("-"))
# rpartition
# 作用
# 根据指定的分隔符, 返回(分隔符左侧内容, 分隔符, 分隔符右侧内容)
# r
# 表示从右侧开始查找分隔符
# 语法
# partition(sep)
# 参数
# 参数-sep
# 分隔符
# 返回值
# 如果查找到分隔符
# (分隔符左侧内容, 分隔符, 分隔符右侧内容)
# tuple 类型
# 如果没有查找到分隔符
# (原字符串, "", "")
# tuple 类型
# 注意
# 不会修改原字符串
# 从右侧开始查找分隔符
print(information.rpartition("-"))
# splitlines
# 作用
# 按照换行符(\r, \n), 将字符串拆成多个元素, 保存到列表中
# 语法
# splitlines(keepends)
# 参数
# 参数-keepends
# 是否保留换行符
# bool 类型
# 返回值
# 被换行符分割的多个字符串, 作为元素组成的列表
# list 类型
# 注意
# 不会修改原字符串
lizi = "wo \n shi \r god"
print(lizi.splitlines())
# join
# 作用
# 根据指定字符串, 将给定的可迭代对象, 进行拼接, 得到拼接后的字符串
# 语法
# join(iterable)
# 参数
# iterable
# 可迭代的对象
# 字符串
# 元组
# 列表
# ...
# 返回值
# 拼接好的新字符串
elems = ["wo", "shi", "god", "or", "dog"]
result = "-".join(elems)
print(result)
isalpha
作用
字符串中是否所有的字符都是字母
不包含该数字,特殊符号,标点符号等等
至少有一个字符
语法
isalpha()
参数
无
返回值
是否全是字母
bool 类型
isdigit
作用
字符串中是否所有的字符都是数字
不包含该字母,特殊符号,标点符号等等
至少有一个字符
语法
isdigit()
参数
无
返回值
是否全是数字
bool 类型
isalnum
作用
字符串中是否所有的字符都是数字或者字母
不包含该特殊符号,标点符号等等
至少有一个字符
语法
isalnum()
参数
无
返回值
是否全是数字或者字母
bool 类型
isspace
作用
字符串中是否所有的字符都是空白符
包括空格,缩进,换行等不可见转义符
至少有一个字符
语法
isspace()
参数
无
返回值
是否全是空白符
bool 类型
startswith
作用
判定一个字符串是否以某个前缀开头
语法
startswith(prefix, start=0, end=len(str))
参数
参数1-prefix
需要判定的前缀字符串
参数2-start
判定起始位置
参数3-end
判定结束位置
返回值
是否以指定前缀开头
bool 类型
endswith
作用
判定一个字符串是否以某个后缀结尾
语法
endswith(suffix, start=0, end=len(str))
参数
参数1-suffix
需要判定的后缀字符串
参数2-start
判定起始位置
参数3-end
判定结束位置
返回值
是否以指定后缀结尾
bool 类型
补充
in
判定一个字符串, 是否被另外一个字符串包含
not in
判定一个字符串, 是否不被另外一个字符串包含
# 判定
# isalpha
# 作用
# 字符串中是否所有的字符都是字母
# 不包含该数字,特殊符号,标点符号等等
# 至少有一个字符
# 语法
# isalpha()
# 参数
# 无
# 返回值
# 是否全是字母
# bool 类型
zimu = "zimu"
print(zimu.isalpha())
# isdigit
# 作用
# 字符串中是否所有的字符都是数字
# 不包含该字母,特殊符号,标点符号等等
# 至少有一个字符
# 语法
# isdigit()
# 参数
# 无
# 返回值
# 是否全是数字
# bool 类型
shuzi = "123456789"
print(shuzi.isdigit())
# isalnum
# 作用
# 字符串中是否所有的字符都是数字或者字母
# 不包含该特殊符号,标点符号等等
# 至少有一个字符
# 语法
# isalnum()
# 参数
# 无
# 返回值
# 是否全是数字或者字母
# bool 类型
zimushuzi = "abc123"
print(zimushuzi.isalnum())
# isspace
# 作用
# 字符串中是否所有的字符都是空白符
# 包括空格,缩进,换行等不可见转义符
# 至少有一个字符
# 语法
# isspace()
# 参数
# 无
# 返回值
# 是否全是空白符
# bool 类型
space = " "
print(space.isspace())
# startswith
# 作用
# 判定一个字符串是否以某个前缀开头
# 语法
# startswith(prefix, start=0, end=len(str))
# 参数
# 参数1-prefix
# 需要判定的前缀字符串
# 参数2-start
# 判定起始位置
# 参数3-end
# 判定结束位置
# 返回值
# 是否以指定前缀开头
# bool 类型
filename = "2022-08-07 zhuanghaun.doc"
print(filename.startswith("2022"))
# endswith
# 作用
# 判定一个字符串是否以某个后缀结尾
# 语法
# endswith(suffix, start=0, end=len(str))
# 参数
# 参数1-suffix
# 需要判定的后缀字符串
# 参数2-start
# 判定起始位置
# 参数3-end
# 判定结束位置
# 返回值
# 是否以指定后缀结尾
# bool 类型
print(filename.endswith(".doc"))
# 补充
# in
# 判定一个字符串, 是否被另外一个字符串包含
# not in
# 判定一个字符串, 是否不被另外一个字符串包含
print("xiao" in "ni shi da xiao zi")
print("xiao" not in "ni shi da xiao zi")