一、概述
- 字符串类型的表示
- 字符串操作符
- 字符串处理函数
- 字符串处理方法
- 字符串类型格式化
二、字符串类型的表示
-
由0个或多个字符组成的有序字符序列
- 字符串由一对单引号或一对双引号表示:
"请输入带有符号的温度值: "
或者'C'
- 字符串是字符的有序序列,可以对其中的字符进行索引:
"请"
是"请输入带有符号的温度值: "
的第0个字符
字符串有 2类共4种 表示方法
- 由一对单引号或双引号表示,仅表示单行字符串:
"请输入带有符号的温度值: "
或者'C'
- 由一对三单引号或三双引号表示,可表示多行字符串
三、字符串操作符
3.1 由0个或多个字符组成的有序字符序列
- 字符串由一对单引号或一对双引号表示:
操作符及使用 | 描述 |
---|---|
x+y | 连接两个字符串x和y |
n * x 或 x * n | 复制n次字符串x |
x in s | 如果x是s的子串,返回True,否则返回False |
四、字符串处理函数
一些以函数形式提供的字符串处理功能
函数及使用 | 描述 |
---|---|
len(x) | 长度,返回字符串x的长度:len("一二三456") 结果为 6 |
str(x) | 任意类型x所对应的字符串形式:str(1.23) 结果为"1.23" str([1,2]) 结果为"[1,2]" |
五、字符串内置方法
一些以方法形式提供的字符串处理功能
方法及使用 | 描述 |
---|---|
str.lower() 或 str.upper() | 返回字符串的副本,全部字符小写/大写:"AbCdEfGh".lower() 结果为 "abcdefgh" |
str.split(sep=None) | 返回一个列表,由str根据sep被分隔的部分组成 :"A,B,C".split(",") 结果为['A','B','C'] |
str.count(sub) | 返回子串sub在str中出现的次数:"a apple a day".count("a") 结果为 4 |
str.replace(old, new) | 返回字符串str副本,所有old子串被替换为new :"python".replace("n","n456") 结果为 "python456" |
str.center(width[,fillchar]) | 字符串str根据宽度width居中,fillchar可选:"python".center(20,"=") 结果为 '=python=' |
str.strip(chars) | 从str中去掉在其左侧和右侧chars中列出的字符:"= python= ".strip(" =np") 结果为 "ytho" |
str.join(iter) | 在iter变量除最后元素外每个元素后增加一个:str ",".join("12345") 结果为 "1,2,3,4,5" #主要用于字符串分隔等 |
六、字符串类型的格式化
格式化是对字符串进行格式表达的方式
- 字符串格式化使用.format()方法,用法如下:
<模板字符串>.format(<逗号分隔的参数>)
- 字符串格式化使用f-string方法,用法如下:
f<模板{<逗号分隔的参数>}字符串>
6.1 f-string方法的格式控制
{<参数序号> : <格式控制标记>}
: | <填充> | <对齐> | <宽度> | <,> | <.精度> | <类型> |
---|---|---|---|---|---|---|
引导符号 | 用于填充的单个字符 | < 左对齐 > 右对齐 ^ 居中对齐 | 槽设定的输出宽度 | 数字的千位分隔符 | 浮点数小数 或 字符串最大输出长度 | 整数类型 b,c,d,o,x,X 浮点数类型e,E,f,% "{0:=^20}".format("PYTHON") |
"{0:=^20}".format("PYTHON")
'=PYTHON='
"{0:*>20}".format("BIT")
'*********BIT'
"{:10}".format("BIT")
'BIT '
"{0:,.2f}".format(12345.6789)
'12,345.68'
"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
'110101001,Ʃ,425,651,1a9,1A9'
"{0:e},{0:E},{0:f},{0:%}".format(3.14)
'3.140000e+00,3.140000E+00,3.140000,314.000000%'
七、单元小结
- 正向递增序号、反向递减序号、<字符串>[M:N:K]
- +、*、len()、str()、hex()、oct()、ord()、chr()
- .lower()、.upper()、.split()、.count()、.replace()
- .center()、.strip()、.join()、.format()格式化
八、练习
- 进度条
scale = 10
start = time.perf_counter()
for i in range(scale + 1):
print(f'
{((i/scale)*100): ^3.1f}%[{"*"* i}->{"."*(scale-1-i)}] {time.perf_counter()-start:.2f}s', end='')
time.sleep(0.1)