字符串
1、字符串的基本操作
所有的标准序列操作,比如:索引、切片、乘法、成员资格检查、长度、最小值和最大值,都适用于字符串。
字符串是不可变的。
2、设置字符串格式
这里的基本思想就是**调用format()**方法,并提供要设置其格式的值。每个值都被插入字符串中,以替换用花括号括起来的替换字段。要在最终结果中包含花括号,可在格式字符串中使用两个花括号来指定。
替换字段由字段名、转换标志和格式说明符组成。
2.1、替换字段名
最简单的情况下,只需要向format提供要设置其格式的未命名参数,并在格式字符串中使用未命名字段。此时,将按顺序将字段和参数配对。
还可以给参数指定名称,还可以通过索引来指定哪个字段中使用相应的未命名参数。
2.2、基本转换
转换标志 | 说明 |
!s | 使用str进行转换 |
!r | 使用repr进行转换 |
!a | 使用ASCII进行转换 |
格式说明符 | 说明 |
:b | 将整数表示为二进制 |
:d | 将整数视为十进制数进行处理 |
:e | 使用科学计数法来表示小数(用e来表示指数) |
:E | 用E来表示指数 |
:f | 将小数表示为定点数 |
:g | 自动在定点表示法和科学表示法之间做出选择 |
:G | 与g相同,使用大写来表示指数和特殊值 |
:n | 与g相同,但插入随区域而异的数字分隔符 |
😮 | 将整数表示为八进制数 |
😒 | 字符串格式 |
:x | 将整数表示为十六进制,并使用小写字母 |
:X | 将整数表示为十六进制,并使用大写字母 |
:% | 将数表示为百分比 |
2.3、宽度、精度和千位分隔符
宽度用整数来指定。
精度也用整数来指定,但需要在前面加上一个表示小数点的句点。可同时指定宽度和精度。
可用逗号来指定添加千位分隔符。
2.4、符号、对齐和用0填充
在指定宽度和精度的前面,可添加一个标志。这个标志可以是零、加号、减号或空格,其中零表示使用0来填充。加号表示要给正数添加符号+,如果是空格,将会添加空格。减号则表示给负数添加符号-。还有更具体的说明符=,它将填充字符放在符号和数字之间。
左对齐:< 右对齐:> 居中:^
可以用填充字符来扩充对齐说明符。
3、字符串方法
方法 | 功能 |
string.center(width[,fillchar]) | 返回一个长度为(len(string),width)的字符串。这个字符串的中间包含当前字符串,但两端用fillchar指定的字符(默认是空格)填充 |
string.find(sub[,start[,end]]) | 返回找到的第一个子串sub的索引,如果没找到就返回-1;还可以指定范围string[start,end] |
string.join(sequence) | 将string与sequence中的所有字符串合并,并返回结果 |
string.lower() | 将字符串中所有的字母都转换为小写,并返回结果 |
string.upper() | 将字符串中所有的字母都转换为大写,并返回结果 |
string.title() | 将字符串中所有的单词的首字母都大写,并返回结果 |
string.replace(old,new[,max]) | 将字符串中的子串old替换为new,并返回结果;还可将最大替换次数限制为max |
string.strip([chars]) | 将字符串开头和结尾的所有chars字符(默认是空白字符,如空格、制表符和换行符)都删除,并返回结果 |
string.translate(table) | 根据转换表table(这里使用maketrans创建的)对字符串中的所有字符都进行转换,并返回结果 |
string.count(sub[,start[,end]]) | 计算子串sub出现的次数,可搜索范围限定为string[start:end] |
string.endwith(suffix[,start[,end]]) | 检查字符串是否以suffix结尾,还可以指定匹配范围限定为string[start:end] |
string.format(…) | 实现了字符串格式设置。将字符串中用大括号括起来分隔的字段替换成相应的参数,再返回结果 |
string.format_map(mapping) | 类似于使用关键字参数调用format,只是参数是以映射方式提供的 |
string.index(sub[,start[,end]]) | 返回找到的第一个子串sub的索引 |