优雅的字符串



前言

记得我在Python学习总结第一篇中有提到字符串,那个可以算是先打个招呼吧,因为没有提到任何关于字符串的处理方法。今天,给大家详细讲解一下Python中字符串的使用方法,如有不当或不足之处,还请大家指出及补充,先谢过。

基本字符串操作

对于序列的操作,我们马上可以想到的都有什么?索引?分片?乘法?判断成员资格?求长度?求最大最小值?没错,在字符串的领域中,我们也同样可以适用。不过,千万千万要牢记一点:字符串是不可变的。所以,在字符串中实施分片赋值是不可以的辣。

字符串格式化

谈到字符串格式化,实在是很平常的啦,C++里我们都是怎么样用的?memset?那么在Python中呢,字符串格式化的操作符就是百分号%来表示。

python numpy 取白色部分出来_c/c++

注意:%也可以用作取模运算。

字符串格式化方法:在字符串中需要格式化的地方一律用%s来表示。然后输出的时候在%的左侧放置一个字符串(需要格式化的字符串),右侧放置需要用来格式化字符串的值(可以是一个数字或者一个字符串,也可以是包含多个值的元组或者字典)。

注意:%s和用来格式化字符串的值的个数必须要相同。

python numpy 取白色部分出来_格式化字符串_02

格式化字符串中的%s 部分称为转换说明符,它标记了需要插入转换值的位置。如果要格式化实数(浮点数),可以使用f说明符,同时提供需要的精度:一个句点再加上希望保留的小数位数(后面也有讲解到)。

模板字符串:通过调用字符串中模板方法来格式化字符串。具体方法:substitute模板方法会用传递过来的关键字参数foo替换字符串中的$foo。

python numpy 取白色部分出来_c/c++_03

 

运行结果如下:

python numpy 取白色部分出来_字符串格式化_04

基本的转换说明符:

(1)%字符:标记转换说明符的开始。

(2)转换标志(可选):-表示左对齐(默认为右对齐),+表示在转换值之前要加上正负号,0表示转换值若位数不够则用0填充。

(3)%后最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度。

(4)点(.)后跟精度值(可选):如果转换的是实数,精度值就表示出现在小数点后的位数;如果转换的是字符串,那么该数字就表示最大的字段宽度。如果是*,那么精度将会从元组中读出。

python numpy 取白色部分出来_字符串格式化_05

 

 

python numpy 取白色部分出来_python_06

字符串方法

find:在一个较长的字符串中查找子字符串,它返回子串所在位置的最左端索引,如果没有找到就返回-1。

python numpy 取白色部分出来_python_07

join:在队列中添加元素。

python numpy 取白色部分出来_python_08

lower:返回字符串中的字母小写化版本。

python numpy 取白色部分出来_字符串格式化_09

title/capwords:将字符串转换成为标题(即所有单词的首字母大写,其他字母小写)

replace:返回字符串的所有匹配项均被替换之后得到的字符串。

split:是join的逆方法,将字符串分割成序列。(如果不提供任何分隔符,程序会默认所有空格作为分隔符)

strip:返回去除两侧(不包括内部)空格的字符串。也可以指定需要去除两侧的字符,将它们列为参数即可。

lstrip和rstrip。

translate:和replace方法一样,可以替换字符串中的某些部分,但是和前者不同的是,translate方法只处理单个字符。它的优势在于可以同时进行多个替换。在使用translate转换之前,需要事先完成一张转换表(你猜想到了吗),我们可以使用string模块中的maketrans函数就行。

maketrans函数接受两个参数:两个等长的字符串,表示第一个字符串中的每个字符都用第二个字符串中相同位置的字符替换。