一、字符串
1、字符串定义:由字符组成的序列,字符串中的每一个元素还是字符串
特性:字符串是不可变的序列类型
2、字符串的创建:单引号、双引号、三引号
单双引号用法几乎一致、除了两者交替使用可达到输出对方的效果(不建议使用此法,建议使用转义)
单双引号一般在一行中定义,想换行要用续航符(\),三引号自带换行(三引号不是注释)
创建空字符串,空字符串的长度为0,空字符串不是None,转换成bool类型输出Flase
str_null="" print(len(str_null)) print(type(str_null)) print(type(None))
输出的结果为:
0
<class 'str'>
<class 'NoneType'>
3、转义:
字符串的转义序列,将特殊字符转义
单、双引号的转义使用,\ 放在需需转义的字符前,\ 还能转义自己本身
s="i am \"ok\""
输出结果:i am "ok"
print("abcde\\fghik")
输出结果:
abcde\fghik
\n换行:代表换行,换到当前位置的下一行
\r:
在Windows,\r,要回到当前行的行首,不会换到下一行,如果直接输出,会将之前的内容覆盖住
注意:
前缀r:在字符串定义前加r,能够让字符串原样输出
4、字符串的操作
运算符
索引
切片
注意:字符串的操作大部分都是新创建的字符串,除了整切片
1)
运算符:+、 * 、in 、not in、is、is not、==、<、<=、>、>=
①+合并,创建新字符串进行合并
②*重复,返回的是新字符串
两者可以混合用
③in、not in成员运算符
④is、is not
(字符串本身是有序的)
⑤==等
返回值为True、Flase
字符集:
比较的是ASCII码
逐个比较,若两边第一个字符已经比较出结果,则直接会出结果,True、Flase
当位数不同时,若前面无法比较出大小当位数不同时,位数少的补一个空位,继续比较
2)索引(索引不能越界,否则会报异常)
获取字符串中单个字符串,需要用到索引
格式:字符串名[index]:index可以为正数、负数、0
第一个元素:从0开始
正数:从左到右
负数:从右向左,最后一个元素为-1
范围:-len(s),len(s)-1
注意:字符串的元素不能修改,只能重新绑定
3)切片能够获取字符串的多个元素(包含start,不包含end)
格式:字符串名[start,end]:
包含start,不包含end,两者可以取正数、负数、0
start省略为0,end省略为len(s)
end-start=截取的长度
第一个元素:从0开始
正数:从左到右
负数:从右向左,最后一个元素为-1
范围:-len(s),len(s)-1
注意:切片是新创建的字符串(非整切片),字符串的元素不能修改,只能重新绑定
4)字符串的相关方法:
①center(str,start,end)统计
(可越界,不报错,和切片一样,当索引(下标)超过范围时,不会报错)
返回参数某字符串在原串中出现的次数
不写start、end,默认按原字符串统计
若只传递一个参数,认为是start,结果默认为len(st)
②index查找,若查找到则返回原中的位置,否则会报错
默认从左向右查找,查找子串中第一个字符出现的位置
③find查找,返回查找的内容在原中的位置,若找不到不会报错,会返回-1
默认从左向右查找,查找子串中第一个字符出现的位置
④join拼接字符串,把列表中各个元素按照字符串连接(通常用来拼接列表)
新创建的字符串
⑤replace替换,替换结果是replace
replace(old,new,count)
⑥strip剪切,去掉指定的符号,从两端去掉指定的字符串
参数不写,默认的空格
挨个字符找,去掉两端符合条件的字符串,一直去掉不符合条件的位置
# 从左边剪切
print(st.lstrip("af"))
# 从右侧剪切
print(st.rstrip("af"))
⑦split 切割:切割完的字符就没有了
按照切割的参数,一分为二
返回值是列表
⑧upper lower
全部转成大写、小写
⑨isnumeric: 判断是不是数值类型
⑩isalpha: 判断是不是字符
(11)center(width,char)
如果width<len(s),不会对原串进行截取
width:占位
char: 填充的字符
s="hello world"
#当字符串长度是奇数,填充会从右侧开始
当字符串长度是偶数,填充会从左侧开始