在python中,字符串用str表示
字符串是不可变数据类型
@[字符串的表现形式]
使用一对单引号或者一对双引号都可以表示一个字符串
str1 = 'abc' 或者 str2 = "abc"
如果双引号里又有双引号;或者单引号里又有单引号,需要使用转义字符,将字符串里的双引号或者单引号进行转义
例:str3 = "Tom said:\"I am Tom\" "
还可以使用三个单引号或者三个双引号
@[字符串中的转义字符]
\\ 表示一个 \
\n 换行
\t 一个Tab键
\r 清空 \r 前面的内容,只显示 \r 后面的内容
\r\n 换行
r' '的使用 p = 'how\\r\\nare\\r\\nyou'
q = r'how\r\nare\r\nyou'
表现出的效果是一样的
@[字符串的下标和切片]
字符串中的下标index,可以通过下标来获取到指定位置的字符,正向下标从0开始,反向下标从-1开始。
例如:有字符串 x = 'abcdefghijk'
x[2] 获取下标为2的字符,结果为 c
x[2:8] 获取下标为[2,8)的字符,结果为 cdefgh
x[::-1] 字符串的反转,即逆向排序,结果为 kjihgfedcba
x[2:10:2] 获取下标为[2,10),步长为2的字符结果为 ceg
x[:5] 从开始位置到5,不包含第五个,结果为 abcde
x[2:] 从第二个开始到最后,结果为 cdefghijk
x[8:2:-1] 从右往左取,第八个到第二个,不包含第二个,结果为 ihgfed
x[-5:-1] 从倒数第五个取到倒数第一个,不包含倒数第一个,结果为 ghij
x[-2:-8:-1] 从倒数第二个取到倒数第八个,不包含倒数第八个,结果为 jihgfe
@[字符串的常用方法]
例:有字符串 s = 'abcdefg'
**1、获取字符串的长度 len()**
len(a)
**2、与查询相关的方法**
find()、rfind()、index()、rindex()
其中,find() 获取指定字符在字符串里第一次出现的下标位置
可以指定开始和结束区间(包含开始,不包含结束区间)
a = 'abcdefga'
print(a.find('a'))
a = 'abcdefcga'
print(a.find('c',0,4))
rfind()与find基本一致,只是从右边开始查找。
find() 和 index() 的区别在于
find() 如果未找到,会返回 -1
index() 如果未找到,会直接报错
**3、与判断相关的方法**
startswith 判断字符串是否是以。。。开始
endswith 判断字符串是否是以。。。结束
islower 判断是否是全小写
isupper 判断是否是全大写
isdigit 判断字符串是否是纯数字
isalpha 判断字符串是否是纯字母
isalnum 判断字符串是否是数字字母组合,纯数字可以,纯字母也可以,混合也可以
issapce 判断字符串是否全是空格
in 运算符 'a' in 'abcdef' ==> True
**4、计算字符在字符串中出现的次数 count()**
s = 'abcdeafcga'
print(s.count('a'))
结果为 3
**5、字符的替换方法 replace()**
格式:replace(oldchar,newchar[,count])
x = 'good'
y = x.replace('o', 'm')
print(x) # good
print(y) # gmmd
replace方法不会改变原有的字符串,只会生成一个新的字符串,新的字符串存储了替换后的结果
**6、字符串的切割方法**
split()、rsplit()、splitlines()、partition()、rpartition()
split(sep[,maxsplit])
sep:分隔符,要使用哪个字符对字符串进行切割
maxsplit:指定最大的切割次数
s = 'pythonhelloworld'
print(s.split('o'))
结果 ['pyth', 'nhell', 'w', 'rld']
s = 'pythonhelloworld'
print(s.split('o',2))
结果 ['pyth', 'nhell', 'world']
rsplit()与split类似,只是从右边开始。
splitlines()
z = 'hello_hi_how_good_better_bad_worse'
print(z.splitlines())
结果 ['hello_hi_how_good_better_bad_worse']
因为 z 本身就只有一行,按行切割的话,还是原来的一行
# 注意splitlines和split('\r\n')的区别
m = 'hello\r\nhi\r\ngood\r\nbetter\r\n'
print(m.splitlines())
结果 ['hello', 'hi', 'good', 'better']
print(m.split('\r\n'))
结果 ['hello', 'hi', 'good', 'better', '']
partition() 以指定的字符将字符串进行分割
a = 'hello'
print(a.partition('e'))
结果 ('h', 'e', 'llo')
z = 'hello_hi_how_good_better_bad_worse'
print(z.partition('_'))
结果 ('hello', '_', 'hi_how_good_better_bad_worse')
rpartition()
z = 'hello_hi_how_good_better_bad_worse'
print(z.rpartition('_'))
结果 ('hello_hi_how_good_better_bad', '_', 'worse')
**7、字符串中的空格处理相关方法**
ljust() 使用指定的字符左对齐填充到指定长度
格式:ljust(width[,fillchar])
例:print('yes'.ljust(10, "_"))
结果 yes_______
rjust() 使用指定的字符右对齐填充到指定长度
print('no'.rjust(10, '-'))
结果 --------no
center() 将字符串放在中间
print('you'.center(10, '*'))
结果 ***you****
lstrip() 消除字符串左边的空格
rstrip() 消除字符串右边的空格
strip() 消除字符串两边的空格
**8、修改字符串中字符的大小写相关方法**
capitalize 第一个单词的首字母变大写
title 每个单词的首字母大写
lower 全小写
upper 全大写
**9、字符串的拼接相关方法**
join()
例:‘*’.join(['hello','hi','good'])
结果 hello*hi*good
例:print('*'.join('abc'))
结果 a*b*c