一、什么是字符串
字符串的类型名:str
字符串是容器型数据类型,将单引号和双引号作为容器的标志,元素不需要用逗号隔开
字符串是不可变的(不支持增删改)
字符串是有序的(支持下标操作)
二、字符串的元素
1)字符串中的元素要求
只能是文本符号(所有计算机能够表达出来的富豪都可以作为字符串的元素)
字符串中每一个独立的元素又叫字符,python中只有字符的概念,但没有字符对应的数据类型
注意:
空串的表示:'',"",'''''',""""""
2)字符(字符串中的元素)
字符串中的字符分为两种:普通字符 、转义字符
a.普通字符 除了转义字符以外的字符
b.转义字符 在指定符号前加\用来表示一些特殊功能和特殊意义的字符
\n (换行)
\t (制表符,相当于tab键)
\' (单引号)
\" (双引号)
\\ (反斜杠\)
\u四位的十六进制数 (编码字符)
str1='\u423ahello'
print(str1)
结果:
䈺hello
注意:计算字符串长度的时候,一个转义字符的长度为1
3)阻止转义 (r或者R)
在字符串的最前面加上r或者R,此时字符串中的转义字符都失效
str1=r'\u423ahello'
print(str1)
结果:
\u423ahello
应用1:windows路径
patt=r'c\tab\nan'
应用2:正则表达
三、字符编码
3.1 什么是字符编码
计算机在存储数据时,只能存储数字,存储的还是数字的补码
为了能够让计算机存储文本数据,给每一个字符关联了一个固定的数字,用来对这个字符进行存储。
3.2 编码表
1)ASCII码表
用一个字节来对字符进行编码(码值范围:0 ~ 127)
48 ~ 57 (0~9)对应的编码值
65 ~ 90 (A~Z)对应的编码值
97 ~ 122 (a~z)对应的编码值
2)Unicode编码表
Unicode编码表是对ASCII码表的扩展(Unicode编码表中包含了ASCII码表中的所有字符)
Unicode编码表中包含了世界中所有的国家所有的名族所有语言的符号,总共65535
中文范围:4e00 ~ 9fa5
3.3 chr(Unicode编码值) 获取指定编码值对应的字符
ord(字符) 获取指定字符对应的编码值
四、获取字符串的元素
字符串中获取元素的语法与列表获取元素的语法一样
4.1 获取单个元素
语法:字符串[下标] 获取字符串中指定下表对应的元素,下标不能越界
4.2 切片
语法:字符串[开始下标:结束下标:步长]
4.3 遍历
1)直接遍历,获取每一个元素
for 变量 in 字符串:
循环体
2)通过下标获取每一个元素元素
for index in range(len(字符串)):
print(字符串[index])
五、字符串的相关操作
5.1 数学运算(+ 和 *)
字符串1 + 字符串2 表示字符串的拼接,产生新的字符串
字符串*N 表示将字符串中的元素重复N次,产生新的字符串
5.2 比较运算
== 和 !=
>, <, >=, <=
字符串作比较的时候是比较字符串中元素的编码值的大小,比较的时候是一对一对比较
应用:
判断是否是数字字符: '0' <= char <= '9'
判断是否是小写字母: 'a' <= char <= 'z'
判断是否是大写字母: 'A' <= char <= 'Z'
判断是否是中文: '\u4e00' <= char <='\u9fa5'
5.3 in 和 not in
字符串1 in 字符串2 判断字符串1是否是字符串2的子串
字符串1 not in 字符串2 判断字符串1是否是字符串2的子串
5.4 相关函数
max、min、sorted、reversed、len也适用于字符串
max()、min()函数在对字符串操作的时候,是把字符串中的元素转换成编码值来比较
str(数据) 将指定的数据转换成字符串
a.所有的数据都可以转换成字符串
b.数据的打印值作为字符串的内容
六、字符串的相关方法
1)计数
字符串1.count(字符串2) 统计字符串2在字符串1中出现的次数
字符串1.count(字符串2,开始下标,结束下标) 在字符串1中获取字符串2在指定范围类出现的次数
2)替换
字符串1.replace(字符串2,字符串3,N) 将字符串1中的前N个字符串2替换字符串3
字符串.expandtabs(不建议使用) 将字符串中的制表符替换成 8 个空格(只针对下标为零的字符串是\t有用)
3)对齐处理
字符串.center(长度,长度为1的字符串) 将字符串按指定的宽度居中对齐,左右多出来的空格用指定的字符串填充
字符串.ljust(长度,长度为1的字符串) 将字符串按指定的宽度左对齐,右边多出来的空格用指定的字符串填充
字符串.rjust(长度,长度为1的字符串) 将字符串按指定的宽度向右对齐,左边多出来的空格用指定的字符串填充
4)切割
字符串1.split(字符串2,次数) 将字符串1按照指定的次数用字符串2来切割,从前往后切,生成一个列表
字符串1.rsplit(字符串2,次数) 将字符串1按照指定的次数用字符串2来切割,从后往前切,生成一个列表
5)修改大小写
字符串.capitalize() 将字符串的第一个字符变成大写,如果第一个不是字母,则不会修改
字符串.swapcase() 将字符串的大写变成小写,小写变大写
字符串.lower() 将字符串的所有字母都变成小写
字符串.upper() 将字符串的所有字母都变成大写
6)删除字符
字符串.strip() 删除字符串两边的空白 字符串.lstrip() 删除字符串左边的空白
字符串.rstrip() 删除字符串右边的空白
7)查找
字符串1.find(字符串2,开始下标,结束下标) 获取字符串2在指定范围内第一次出现在字符串1中的下标(下标用正的表示),找不到的时候返回-1
字符串1.index(字符串2,开始下标,结束下标) 获取字符串2在指定范围内第一次出现在字符串1中的下标(下标用正的表示),找不到的时候报错
8)拼接
字符串.join(容器) 将容器中的元素按指定的字符串拼接起来,产生新的字符串(容器中的元素是字符串)
应用:当容器中的元素不是字符串时,与推导式一起使用
比如:num=[1,2,3]
new='+'.join([str(x) for x in num])
print(new)
结果:
1+2+3
七、格式字符串
1. 格式占位符
语法:包含格式占位符的字符串 % (数据1,数据2,...)
说明:
a. 数据的个数与占位符的个数相等
b. 格式占位符
%d 整数
%f 小数
%s 字符串
注意:
%Nd /%-Nd 整数填充字符串的时候指定宽度N,不够的用空格在前面/后面占位
%.Nf .N表示保留小数的位数
2. format
在字符串中用 {} 作为占位符,来表示字符串中变化的部分
语法:'{}xxx{}' .format(数据1,数据2)
用下面的代码来解释format的几种使用情况
name=input('输入一个名字:')
age=int(input('年龄:'))
print('{}今年{}岁' .format(name,age))
print('{0}今年{1}岁,{0}读小学四年级了' .format(name,age))
print(f'{name}今年{age}岁' )
结果:
输入一个名字:xixi
年龄:9
xixi今年9岁
xixi今年9岁,xixi读小学四年级了
xixi今年9岁
第一个输出的语法说明:要求数据的个数与占位符的个数相等,一一对应
第二个输出的语法说明:当占位符中的数据有相同的时候,在{}中用下标来表示,可以减少代码的重复
第三种输出的语法说明:直接在{}里面添加对应的变量名,然后在字符串的前面加f
3.数字格式化
以下功能通过代码来理解:
:.Nf 限制小数的小数点位数(N位)
:x>Nd 数字占N位,不够用x填充(填在左边)
:x<Nd 数字占N位,不够用x填充(填在右边)
:, 用逗号将数据进行分隔(三位一个逗号)
:.N% 以百分比的形式显示数据,数据保留 N 位小数
print('数字:{:.2f}'.format(1.2345))
print('数字:{1:.2f}'.format(1.2345,2.1345))
print(f'{34:0>5d}')
print(f'{34:0<5d}')
print(f'{1000000000:,}')
print(f'{0.25:.0%}')
结果:
数字:1.23
数字:2.13
00034
34000
1,000,000,000
25%
转载:https://blog.csdn.net/ycl1995/article/details/106875207
查看评论