注意:字符串是不可变的数据类型,对字符串的任何操作,都不会改变原有字符串!!

一、字符串的下标与切片:

1、下标又称之为索引,在python中字符串、列表、元组都可以通过下标来获取或者操作数据;
2、注意:字符串和元组都不能通过下标来更改原有数据;
3、下标都是从0开始的,0表示第一个的元素的下标,-1代表最后一个元素的下标,-2是倒数第二个的下标,以此类推;

word='hello world'
print(word[4])# 'o'
print(word[0])# 'h'
print(word[-1])# 'd'
# word[4]='x' TypeError: 'str' object does not support item assignment

4、切片就是从字符串里复制一段指定的内容,生成一个新的字符串
(1)切片语法:m[start:END:step],m是字符串变量名,start是起始下标,END是结束下标,包含start,不包含END;
(2)start和END也可以省略,但是中间的冒号不能省略
(3)step是步长,默认是1,可以理解为间隔,没隔|step|-1取一个,步长不能为0,step为正数时,是从左往右,反之就是从右往左;
(4)step省略的同时前面冒号也可以省略,一般用来对字符串进行反转,也就是step取-1;
(5)列表和元组的切片同上;

word='hello world'
print(word[::-1]) # 'dlrow olleh'
print(word[2:]) # 'llo world'
print(word[:9]) # 'hello wor'
print(word[::2])# 'hlowrd'
print(word[-10:5])# 'ello'

二、获取字符串长度

可以使用len()函数来获取字符串、列表、元组的长度。

word='hello world'
print(len(word))# 11

三、查找相关的方法

1、查找相关的方法:find/index/rfind/rindex;
2、find和index方法都是从左边开始查找,返回第一个匹配的下标,rfind和rindex则是从右边开始查找,返回第一个匹配的下标;
3、find和rfind要是没有匹配到就会返回-1,index和rindex没有匹配到则会报错;

print(x.find('n')) # 4
print(x.find('p')) # -1
print(x.index('n')) # 4
print(x.rfind('p')) # -1
print(x.rindex('n')) # 15
# print(x.index('p')) # ValueError: substring not found

四、和字符串相关的判断

startswith:判断一个字符串是否由一个字符或一个字符串开头;
endswith:判断一个字符串是否由一个字符或一个字符串结尾;
isalpha:判断字符串是否全部由字母组成;
isdigit:判断字符串是否全部由数字组成;
isalnum:判断字符串是否由数字或字符组成;
isspace:判断字符串是否全部由空格组成;
isupper:判断字符串是否全部由大写字母组成;
islower:判断字符串是否全部由小写字母组成;
下面是一个将数字和字母分开的列子:
字符串也是可以遍历的

word = '1aaa2bbb13c4 d5cd6d7e8f9g'
al_word = '' # 创建一个等下用来保存字母的空字符串
di_word = '' # 创建一个等下用来保存数字的空字符串
for i in word:
    if i.isalpha(): 
        al_word += i # 字符串拼接
    elif i.isdigit():
        di_word += i
    elif i.isspace(): # 遇到空格我们就停止
        break
print(al_word) # 'aaabbbc'
print(di_word) # '12134'

五、count()方法

count:返回一个字符在整个字符串里出现的次数,列表元组同用;

word = 'hello hi hei he'
print(word.count('h')) # 4
l = ['a','b','a',1,2,3,1,2,1]
print(l.count(1)) # 3

六、字符串的内容分割 split join

split:把字符串以某个字符进行分割,分割为一个列表,默认是以空格进行分割,如果指定次数count,则分割不会超过count次,rsplit是从右边开始分割;

m = 'zhangsan lisi wangwu maliu'
n = m.split()
print(n) # ['zhangsan', 'lisi', 'wangwu', 'maliu']
x = 'zhangsan-lisi-wangwu-maliu'
a = x.split('-', 5)  # 从左边开始找分割符进行分割
b = x.rsplit('-', 1)  # 从右边开始找分割符进行分割
print(a) # ['zhangsan', 'lisi', 'wangwu', 'maliu']
print(b) # ['zhangsan-lisi-wangwu', 'maliu']

能分割肯定就能拼接,可以使用join方法,join也是字符串的一个方法,它可以用前面所给字符串拼接列表元组字典(只拼接key值)集合等,但所拼接的内容必须是字符串,就比如要拼接列表,列表内的元素必须是字符串

num =['123','456','789','000']
print(''.join(num))# '123456789000' join括号里是可迭代对象
print('+'.join(('我爱你','enna'))) # 我爱你+enna

partition:把指定的一个字符串分成三部分:前面 分割符 后面,返回的是一个元组;

c = 'abcdefghigjklmn'
d = c.partition('g') # 从左边开始找分割符进行分割
e = c.rpartition('g') # 从右边开始找分割符进行分割
print(d) # ('abcdef', 'g', 'higjklmn')
print(e) # ('abcdefghi', 'g', 'jklmn')

字符串中的单词就是以任意标点符号或者数字进行分隔出来的字母块

# capitalize 让第一个单词的首字母大写,其他小写
print('hello world.GOOD'.capitalize())# Hello world.good
# upper 全大写
print('hello'.upper()) # HELLO
# lower全小写
print('HEL22LO'.lower()) # hel22lo
# title 每个单词的首字母大写,其他小写
print('he1ll2o worldGOOD'.title()) # He1Ll2O Worldgood
# swapcase 大小写反转
print('HelloWORLD'.swapcase())# hELLOworld

希望这些对您有点帮助


又来骗赞了QAQ