字符串 综合
1 单引号,双引号,三引号
- 单引号:字符串中含有双引号时
- 双引号:字符串中含有单引号时。 “I’m fine too!”
- 三引号:字符串中同时含有单引号和双引号时;多行显示
2 正向单索引
- 正向单索引只获取列表中的某一个元素,,并且从左到右方向索取对应位置的元素,可以使用[index]表示;
- 索引值index是从0开始
- 例:
list1 = [‘张三’,‘男’,33,‘江苏’,‘硕士’,‘已婚’,[‘身高178’,‘体重72’]]
#取出第一个元素
print(list1[0])
#取出第四个元素
print(list1[3])
#取出最后一个元素
print(list1[6])
#取出“体重72”这个值
print(list1[6][1])
3 负向单索引
-
负向单索引是指在正向单索引的基础上添加一个负号“-”,所表达的含义是从右向左的方向获取元素,可以用[-index]表示
-
需要注意的是,负索引index是从-1开始的
-
例:
list1 = [‘张三’,‘男’,33,‘江苏’,‘硕士’,‘已婚’,[‘身高178’,‘体重72’]]
#取出最后一个元素
print(list1[-1])
out:
[‘身高178’,‘体重72’]
- 例:
根据身份证识别性别
ID=‘124433333779356789’
if int(ID[-2])%2==0:
print(‘女’)
else:
print(‘男’)
4 有限切片
- 切片索引指的是按照固定的步长,连续取出多个元素,可以用[start🔚step]表示。其中,start指定索引的起始位置;end指定索引的终止位置(注意,end位置的元素取不到!);step指步长,默认为1,表示逐个取出一连串的列表元素。
- 例:
ID=‘124433198807176789’
#取出出生日期
print(ID[6:14])
price=‘15.5元/500个’
#取出价格,转为浮点型
print(float(price[0:4]))
#取出500个
print(price[6:len(price)])
#可以取到最后一个值,因为字符串的长度为10,而不是最后一个元素的索引值
print(len(price)) # price字符串的长度为10
print(price[6:-1]) # end位置的元素取不到!
print(price[6:9]) #end位置的元素取不到!
out:
19880717
15.5
500个
10
500
500
5 无限切片
- 无限索引是指在切片过程中不限定起始元素的位置或终止元素的位置。起始和终止元素的位置都不限定,可以用[::step]表示,包含字符串所有元素。
- 例:
list2 = [‘江苏’,‘安徽’,‘浙江’,‘上海’,‘山东’,‘山西’,‘湖南’,‘湖北’]
#取出前三个元素
print(list2[:3])
#取出最后三个元素
print(list2[-3:])
#取出奇数位置的元素
print(list2[::2])
out:
[‘江苏’, ‘安徽’, ‘浙江’]
[‘山西’, ‘湖南’, ‘湖北’]
[‘江苏’, ‘浙江’, ‘山东’, ‘湖南’]
6 字符串方法- 查询方法1
str.index(sub, start,end) # 如果找不到子串,程序会报错,一般不建议使用。 - 例:
list1 = “‘李四’,‘女’,27,‘黑龙江’,‘博士’,‘已婚’,[‘身高198’,‘体重92’]”
print(list1)
print(list1.index(‘黑龙江’))
print(list1.index(‘博士’,3,25))
out:
‘李四’,‘女’,27,‘黑龙江’,‘博士’,‘已婚’,[‘身高198’,‘体重92’]
13
19
-
例:
str1=‘How are you?’
#查询r的位置
print(str1.index(‘re’))
#取出are
print(str1[str1.index(‘a’):str1.index(‘e’)+1])
#取出e之前的所有字符
print(str1[:str1.index(‘e’)])
out:
5
are
How ar -
查询方法2
str.find(sub, start,end) # 如果找不到子串,给出“-1”。 -
例:
list1 = “‘李四’,‘女’,27,‘黑龙江’,‘博士’,‘已婚’,[‘身高198’,‘体重92’]”
print(list1)
print(list1.find(‘女’))
print(list1.find(‘博士’,3,5))
out:
‘李四’,‘女’,27,‘黑龙江’,‘博士’,‘已婚’,[‘身高198’,‘体重92’]
6
-1 -
“压缩”方法
str.lstrip() #删除字符串前空白
str.rstrip() #删除字符串后空白
str.strip() #删除字符串前、后空白
str.strip(abc) #删除字符串前、后abc -
例:
name1=’ 你 好 吗? ’
print(name1)
print(name1.strip())’
out:
-
例:
-list=’&&&_做得很棒,加油哦(-)’
#去掉首尾的特殊符号
print(list)
print(list.strip(’&_(-)’))
out:
&&&_做得很棒,加油哦(-)
做得很棒,加油哦 -
例:
list=‘aa做得很棒,加油哦bbc’
#去掉首尾的特殊符号
print(list)
print(list.strip(‘abc’))#去掉字符串首尾的abc字符
out:
aa做得很棒,加油哦bbc
做得很棒,加油哦 -
替换方法
str.replace(old,new) # new子串替换old子串
按值替换;按位置替换 -
例:
-
ID=‘12443319880717678x’
ID1=ID.replace(“x”,“X”)
print(ID1)
print(ID1.replace(ID1[7:11],"****"))
out:
-
“格式化插入”方法
str.format(values) #values,指定格式化的值