# 3.1 基本字符串操作
所有标准的序列操作(索引,分片,乘法,判断成员资格,求长度,取最小值和最大值)对字符串同样适用。但是字符串是不可变的,所以分片赋值对其来说是不合法的。
# 3.2 字符串格式化:精简版
![](https://box.kancloud.cn/b271c2ca80ccaa34d58bdba21fe624a6_420x249.png)
注意:只有元组和字典可以格式化以上一个值。
![](https://box.kancloud.cn/df4b9a3943d4c704393fbaf800b32efa_380x57.png)
模版字符串
![](https://box.kancloud.cn/6509d354fa2d57ae959f95582f34fbfb_316x61.png)
两个要记住的东西:Template,substitute
![](https://box.kancloud.cn/4bdeac7d6e50d2eb956b6bd43c7f3192_307x50.png)
同一字符串中,用{}分隔开来
![](https://box.kancloud.cn/d62927397100cc98e6e9fd39aa309e3d_336x49.png)
$符用$$代替
![](https://box.kancloud.cn/cccd6ecdb64e1ac3ee4c310a10b8f123_422x99.png)
用字典来提供值/名称对
# 3.3 字符串格式化:完整版
基本的转换说明符
(1)%字符:标记转换说明符的开始。
(2)转换标志(可选): -表示左对齐;+表示在转换之前加上正负号;“”(空白字符)表示正数之前保留空格;0 表示转换值若位数不够则用0填充
(3)最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度。如果是 * ,则宽度会从值元组中读出。
(4)点(.)后跟精度(可选):如果转换的是实数,精度值表示小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是 * ,那么精度会从元组中读出。
(5)转换类型:
d,i 带符号的十进制整数
0 不带符号的八进制
u 不带符号的十进制
x 不带符号的十六进制(小写)
X 不带符号的十六进制(大写)
e 科学计数法表示的浮点数(小写)
E 科学计数法表示的浮点数(大写)
f,F 十进制浮点数
g 如果指数大于-4或者小于精度值则和e相同,其他情况与f相同
G 如果指数大于-4或者小于精度则和E相同,其他情况则与F相同
r 字符串(使用repr转换任意Python对象)
s 字符串(使用str转换任意Python对象)
## 3.3.1 简单转换
![](https://box.kancloud.cn/64de5cf14dcddebfe6c8fc851854406d_363x174.png)
## 3.3.2 字段宽度和精度
![](https://box.kancloud.cn/4bc05d940877c54383ac6b58397baf76_414x221.png)
## 3.3.3 符号、对齐和0填充
![](https://box.kancloud.cn/12f5918dea320944068cedbb73ea4ceb_417x162.png)
# 3.4 字符串方法
## 3.4.1 find
find方法可以在一个较长的字符串中查找子字符串。它返回子串所在位置的最左端索引。如果没有找到则返回-1。
![](https://box.kancloud.cn/29c6bedce000c15b9cdf123a45b55e59_528x126.png)
![](https://box.kancloud.cn/087097c9fbd3841c1fc7bba62ac1dd30_442x150.png)
## 3.4.2 join
join方法是非常重要的字符串方法,它是 split 方法的逆方法,用来在队列中添加元素。
![](https://box.kancloud.cn/8bf10da8cd98e6eb9a04a2ac6a6adee9_410x188.png)
## 3.4.3 lower
lower 方法返回字符串的小写字母板
![](https://box.kancloud.cn/2fa67d5e23120dbd42da86ac2fbc37ad_521x133.png)
## 3.4.5 split
这是一个非常重要的字符串方法,它是 join 的逆方法,用来将字符串分割成序列。
![](https://box.kancloud.cn/937a2fb80331d5a35731570843764268_279x89.png)
## 3.4.6 strip
strip方法返回去除两侧(不包括内部)空格的字符串。
![](https://box.kancloud.cn/3844d35243821a3249fa932d72a3648c_471x188.png)
## 3.4.7 translate
translate方法和replace方法一样,可以替换字符串中的某些部分,但是和前者不同的是,translate方法只处理单个字符。
![](https://box.kancloud.cn/54fca8cb1aec1d818304f0ecf5eeb018_472x171.png)
# 3.5 小结
string.capwords(s[.sep]): 使用split函数分割字符串s(以sep为分隔符),使用 capitalize 函数将分割得到的各单词首字母大写,并且使用 join 函数以 sep 为分隔符将各单词连接起来。
string.maketrans(from. to): 创建用于转换的转换表。