一.字符串的基础知识
1.字符串
字符串是容器型数据类型(序列);以' '或者" "作为容器的标志,引号中的所有内容都属于字符串的元素。
特点:不可变、有序(支持下标操作)
2.字符串中的元素
字符串中的元素又叫字符,包括:
a.普通字符:字母、数字、各国文字和符号等。
b.转义字符 :字符串中在一些特定的符号前加\来表示特殊的功能和意义。如:\n, \t, \
c.编码字符:\u4位16进制数。
二.字符串的基本操作
1.获取元素 - 和列表一样
a.获取单个元素:字符串[下标]
b.字符串切片:
例如:字符串[2:6:2]
c.遍历:
for char in 字符串:
print(char)
2.字符串操作
1)+ / *
字符串1+字符串2 -> 将字符串1和字符串2拼接在一起产生一个新的字符串。
字符串 * N / N * 字符串 -> 字符串重复N次产生一个新的字符串。
2)==, !=
长度元素和顺序都相等时才相等。
3)>, <, >=, <=
只能两个字符串比较大小 - 找到从前往后第一组不相等的字符,比较他们编码值的大小.
'0' <= char <= '9' - 判断是否是数字字符
'a' <= char <= 'z' - 判断是否是数小写字母
'A' <= char <= 'Z' - 判断是否是数大写字母
'a' <= char <= 'z' or 'A' <= char <= 'Z' - 判断是否是字母
4)in / not in
字符串1 in 字符串2 -> 判断字符串2中是否包含字符串1(判断字符串1是否是字符串2的子串)。
5)len(),max(),min(),sorted(),str()
字符串转换:所有的数据都可以转换成字符串,转换的时候是将数据放在引号中。
6)r语法
字符串前面加r或者R,可以阻止字符串中所有的转义字符转义。
str1 = r'\thow\nare\\you\u4e00'
print(str1, len(str1))
7)格式字符串
在字符串中用格式占位符表示字符串中不确定的部分。
a.语法:包含格式占位符的字符 % (数据1,数据2,...) - ()中数据的个数和类型要和前面格式占位符一一对应
b.格式占位符
%s - 字符串
%d - 整数
%.Nf - 浮点数,N控制小数点后小数的位数
%c - 字符(可以将数字转换成字符)
注意:所有的数据都可以使用%s来做个数占位符;所有的数据都可以使用%s来接收。
三.字符串的相关方法
1.对齐方式
字符串.center(宽度,填充字符=' ') - 居中
字符串.ljust(宽度,填充字符=' ') - 左对齐
字符串.rjust(宽度,填充字符=' ') - 右对齐
字符串.zfill(宽度) == 字符串.rjust(宽度,0)
str1 = 'abc'
print(str1.center(10, '=')) # ===abc====居中
print(str1.ljust(10, '=')) # abc=======左对齐
print(str1.rjust(10, '=')) # =======abc右对齐
print(str1.zfill(10)) # 000000abc
2.统计字符串的个数
字符串1.count(字符串2) - 统计字符串1中字符串2出现的次数。
str1 = 'how are you! Im fine,thank you! and you?'
print(str1.count('you')) # 3
print(str1.count('you', 0, 12)) # 1
3.获取子串下标
str1 = 'how are you! Im fine,thank you! and you?'
print(str1.find('you')) # 8
print(str1.index('you')) # 8
print(str1.find('you1')) # -1
# print(str1.index('you1')) # 报错
4.join方法
字符串.join(序列) - 将序列中的元素用字符串连接产生一个新的字符串。
new_str1 = '+'.join('123')
print(new_str1) # '1+2+3'
5.替换
字符串1.reliace(字符串2,字符串3) - 将字符串1中所有的字符串2都替换成字符串3。
字符串1.reliace(字符串2,字符串3,N) - 将字符串1中前N个字符串2都替换成字符串3。
str1 = 'how are you! Im fine,thank you! and you?'
new_str1 = str1.replace('you', 'YOU')
new_str2 = str1.replace('you', 'me', 2)
print(new_str1)
print(new_str2)
6.字符串切割
字符串1.split(字符串2) - 将字符串2作为切割点切割字符串1,返回一个列表
str1 = 'how are you! Im fine,thank you! and you?'
str_list = str1.split(' ')
print(str_list)
str_list = str1.split('!')
print(str_list)
7.字符串.capitalize()
将字符串的第一个字符转换成大写。
8.字符串.endswith(字符串或元素,beg=M,end=N)
如果字符串含有指定的后缀返回 True,否则返回 False。M、N为指定起始、终止范围。
9.字符串.expandtabs(tabsie=N)
把字符串中的 tab 符号转为空格,tab 符号默认的空格数是N。