一、字符串的索引(切片)
索引的定义
索引是字符的序列,单个字符在字符串中的位置用索引来表示
索引从0开始,是所在位置离序列开头的偏移量
索引的作用
可以通过索引获取对应位置的元素
索引的使用
获取单个元素
s[index] 代表从字符串s中,获取索引为index的字符
a='hello,world!'
print(a[2]) #l
print(a[-1]) #!
获取多个元素
语法格式:[start:stop:step] start为开始索引,stop-1为结束索引,step为步长 切片的范围:[start,stop) start默认为0,stop默认为-1,step默认为1,均可省略不写,当step省略时,最后一个冒号可以不写,start和stop同时省略时,切片范围为列表所有数据,如[::-1]则表示倒序显示该列表 step为正数时:从start开始,每隔step-1向左取一个元素 step为负数时:从stop开始切片,到start-1结束,每隔step-1向右取一个元素,且开始索引一定要在结束索引的左边,否则切取内容为空
s='0123456789'
print(s[1:3]) #12 从索引1到索引2的值,切片范围[1,3)
print(s[-3:-1]) #78 从索引-3到索引-2的值,切片范围[-3,-1)
print(s[:2]) #01 当从头开始切,start可以省略,切片范围[0:2)
print(s[5:]) #56789 当切到结尾,end可以省略,切片范围[5:9]
print(s[:]) #0123456789 显示字符串所有内容
print(s[::3]) #0369 切片范围为所有字符串,每三个取一个值
print(s[1:7:2]) #135 切片范围[1:7),每两个取一个值
#当步长为负数的时候,开始索引一定要在结束索引的左边,否则切取内容为空
print(s[7:5:-1]) #76 切片范围(5:7],从左向右取值
print(s[-1:-3:-1]) #98 切片范围(-3:-1],从左向右取值
print(s[-1:-7:-2]) #975 切片范围(-7:-1],从左向右每两个取一个值
print(s[::-1]) #9876543210 从左向右显示字符串所有内容
二、字符串的拼接
定义
把几个字符串首尾拼接到一起
实现拼接
-
使用"+"运算符把字符串拼接到一起
s1='hello,' s2='world!' print(s1+s2) #hello,world!
-
使用"*"运算符可以重复字符串
s='test' print(s*2) #testtest 其中2可以为其他数字,表示循环次数
三、转义符的使用
定义
反斜杠”\“+想要实现的转义功能首字母
作用
表示字符串中的回车、换行等内容
使用反斜杠”\“表示转义符,通过\和某些特殊字符组合表示特殊含义的字符
常用转义符
-
转移字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \' 单引号 \" 双引号 \a 响铃 \b 退格(删除\b之前一个字符) \e 转义 \000 空 \n 换行 \r 回车(覆盖上一行内容) \t 水平制表符(四个空格)
print('hello\\world') #hello\world
print('hello\'world') #hello'world
补充
若希望字符串中的转义字符不起作用,就使用原字符,在字符串之前加上r,R
print(r'hello\nworld')
注意事项,最后一个字符不能是一个反斜杠
print(r'hello\nworld\') #报错 print(r'hello\nworld\\')
四、字符串的格式化操作
%作占位符
-
%s 字符串
-
%i或%d 整数
-
%f 浮点数
name='张三'
age=27
score=65.7
print('my name is %s,my age is %i,my score is %f'%(name,age,score))
#宽度和精度的表示
print('%10d'%99) #10表示总宽度
print('%.3f'%3.1415926) #.3表示小数点后位数
#同时表示宽度和精度
print('%10.3f'%3.1415926) #总宽度为10,小数点后3位
{}占位符
name='张三'
age=27
score=65.7
print('my name is {},my age is {},my score is {}'.format(name,age,score))
print('{0:3}'.format(3.1415926)) #0为占位符顺序,当值为0时可省略不写,3表示数一共是三位数
print('{:3f}'.format(3.1415926)) #3f表示3位小数
print('{:10.3f}'.format(3.1415926)) #同时设置宽度和精度,一共是10位,3位是小数
f-string作占位符
name='张三'
age=27
score=65.7
print(f'my name is {name},my age is {age},my score is {score}')
#可以包含运算和函数的字符串
ptint(f'{age+1}') #28
print(f'{name[::-1]}') #三张