字符串
字符串是容器,因为字符串中可以包含多个字符
定义:使用引号(单引号,双引号,三引号)引起来的内容就是字符串
- 使用单引号定义
my_str1='hello'
print(my_str1,type(my_str1))
#使用双引号定义
my_str2="hello"
print(my_str2,type(my_str2))
#使用三引号定义
my_str3="""hello"""
print(my_str3,type(my_str3))
my_str4="""hello"""
print(my_str4,type(my_str4))
#4.字符串本身包含引号:I'm 小明
#4.1 字符串本身包含单引号,则在定义中不能使用单引号
#4.2 字符串本身包含双引号,则在定义中不能使用双引号
my_str5="I'm 小明"
print(my_str5)
#5.字符串本身包含打印号,在定义的时候,我就是想使用单引号
#5.1 使用 \ 转义字符,将字符串本身的引号进行转义 \' --> ' \" --> "
my_str6 = 'I\'m 小明'
print(my_str6)
# 5.2 字符串 'I\'m 小明'
my_str7 = 'I\\\'m 小明'
print(my_str7)
#5.3 字符串前面加上r""原生字符串,字符串中的 \ 不会作为转义字符,在文件操作中会使用
my_str8 = r'I\'m 小明'
print(my_str8)
my_str9 = r'I\\\'m 小明'
print(my_str9)
- 字符串的下标
下标(索引):就是指字符在字符串中的位置编号,这个编号就是下标
这个编号一般来说都是从左到右进行编号的,从0开始的(python中支持负数下标,从右到左进行编号的,从-1开始)
下标作用:可以使用下标获取字符串中某个位置的字符
语法:
字符串[下标] #获取指定位置的字符
str1 = 'abcdefg'
# 1.打印字符串中最开始位置的字符
print(str1[0]) #a
# 2.打印最后一个位置的数据
print(str1[-1]) #g
# 3.打印倒数第二个位置的字符
print(str1[-2]) #f
# 4.打印下标为2 的数据
print(str1[2]) #c
#获取字符串中字符的个数(获取字符串的长度)
# len(字符串) #length(长度)
num = len(str1)
print(num)
# 长度-1的下标位置是最后一个字符
print(str1[num-1]) #g 最后一个字符,倒数第一个
print(str1[len(str1)-1]) #g 最后一个字符,倒数第一个
- 切片
切片:可以获取字符串中多个字符(多个字符的下标是有规律的,等差数列)
语法:
字符串[start🔚step]
1.start 是开始位置的下标,end是结束位置的下标(注意,不能渠道这个位置的字符),step步长,等差数列的差值,所取的相邻字符下标之间的差值,默认是1,可以不写
#例
[1:5:1] # 1 2 3 4
[1:5:2] # 1 3
[1:5:3] # 1 4
[1:5:4] # 1
切片会得到一个字符串,即可以获取字符串中的多个字符
str1='abcdefg'
# 1.获取abc字符
print(str1[0:3:1]) # abc
# 如果步长是1 可以不写,最后一个冒号也不写
print(str1[0:3]) # abc
# 如果开始位置为0,可以不写,但是冒号必须有
print(str1[:3]) # abc
# 2.获取efg字符
print(str1[4:7]) # efg
print(str1[-3:7]) # efg
#2.1 如果最后一个字符也要取,可以不写,但是冒号必须有
print(str1[4:]) #efg
#2.2 如果开始和结束都不写,获取全部内容,但是冒号必须有
print(str1[:])
# 3.获取aceg # 0 2 4 6 ,所以步长为2
print(str1[0:7:2]) #aceg
print(str1[:7:2]) #aceg
# 3.特殊应用,步长为负数,开始和结束不写,意思全变,一般不用管,只有一种使用场景
# 反转(逆置)字符串 字符串[::-1]
print(str1[::-1]) # gfedcba
- 字符串的查找方法 find
用法:
字符串.find(sub_str,start,end)
作用:在字符串中查找是否存在sub_str这样的字符串
sub_str:要查找的小的字符串
start:开始位置,从哪个下标位置开始查找,一般不写,默认是0
end:结束位置,查找到哪个下标结束,一般不写,默认是len()
返回(代码执行之后会得到什么,如果有返回,就可以使用变量保存)
1.如果在字符串中找到了sub_str,返回sub_str第一次出现的正数下标(sub_str中第一个字符串在大字符串中的下标)
2.如果没有找到,返回-1
str1= 'and itcast and itheima and python'
# 在字符串中查找 and
num=str1.find('and')
print(num) # 0
# 在字符串中查找 第二个 and出现的下标,从第一次出现的后一位开始找
num1=str1.find('and',num+1)
print(num1) #11
# 在字符串中查找 第三个 and 出现的下标,从第二次出现的后一位开始找
num2=str1.find('and',num1+1)
print(num2) #23
num3 = str1.find('and',num2+1)
print(num3) #-1
'''
字符串的替换方法 replace
字符串.replace(old_str,new_str,count) # 将字符串中old_str替换为new_str
- old_str :被替换的内容
- new_str: 替换为的内容
- count: 替换的次数,一般不写,默认是全部替换
返回:替换之后的完整的字符串,注意:原来的字符串没有发生改变
'''
str1 = 'good good study'
# 1.将str1中的所有g改为G
str2 = str1.replace('g',"G")
print('str1:',str1)
print('str2:',str2)
#2. 将str1中第一个good改为GOOD
str3 = str1.replace('good','GOOD',1)
print('str3:',str3)
#3.将str1中第二个good改为GOOD
#3.1先将全部的good --> GOOD
#3.2再将第一个GOOD --> good
str4 = str1.replace('good','GOOD')
print('str4:',str4)
str5 = str4.replace('GOOD','good',1)
print('str5:',str5)
- 字符串的链接 join
字符串1.join(列表) :括号中的内容主要是列表,可以是其它容器
作用:将字符串插入到列表中每相邻的两个数据之间,组成一个新的字符串
- 列表中的数据使用 逗号隔开的
- 注意点:列表中的数据必须都是字符串,否则会报错
list1 =['good','good','study']
# 1. 按列表中的字符串使用空格连接起来
str1=' '.join(list1)
print(str1)
#2.将 列表中的字符串使用and 连接起来
str2 = ' and '.join(list1)
print(str2)