python(四)字符串处理,格式化,显示颜色
一,字符串常用操作
1.拼接字符串
使用“+”运算符可完成对多个字符串的拼接
注:字符串不允许与其他类型的数据拼接,正确的做法是将不同类型的字符串转换成相同类型的然后进行拼接。
2.计算字符串的长度
在python中,数字、英文、小数点、下划线和空格占一个字节,python默认的UTF-8编码下,一个汉字占3个字节。
如果想要获取采用GBK编码(汉字占2个字节)的字符串长度,可以使用下面的代码:
3.截取字符串
截取字符串可以采用切片的方法实现。语法格式如下:
string[start:end:step]
4.分割字符串
str.split(sep,maxsplit)
5.合并字符串
strnew = string.join(iterable)
6.检索字符串
(1) count()方法:用于检索指定字符串在另一个字符串中出现的次数,如果检索的字符串不存在,则返回0,否则返回出现的次数。nt语法格式如下: str.count(sub[,start[, end]])
参数说明;
str:表示原字符串。
sub:表示要检索的子字符串。
start:可选参数,表示检索范围的起始位置的索引,如果不指定,则从头开始检索。
end:可选参数,表示检索范围的结束位置的索引,如果不指定,则一直检索到结尾
(2)find()方法:该方法用于检索是否包含指定的子字符串。如果检索的字符串不存在,则返回-1,否则返回首次出现该子字符串时的索引。其语法格式如下:str.find(sub[,start[, end]])
注:python的字符串对象还提供了rfind()方法,其作用与find的方法类似,只是从字符串右边开始查找
(3)index()方法:与find方法类似,只不过使用index方法进行检索时,如果检索的字符串不存在会刨出异常。
(4)startswith()方法:用于检索字符串是否以指定字符串开头。如果是则返回true,否则返回false。语法格式如下:str.startswith(prefix[, start[, end]])
(5)endswith()方法:用于检索字符串是否以指定子字符串结尾。如果是则返回True,否则返回False。语法格式为:str.endswith(suffix[, start[, end]])
7.字母的大小写转换
(1) lower()方法:用于将字符串中的大写字母转换为小写字母。语法格式:str.lower()
(2)upper()方法:用于将字符串中的小写字母转换为大写字母。语法格式:str.upper()
8.去除字符串中的空格和特殊字符
(1)strip()方法:用于去掉字符串左、右两侧的空格和特殊字符,语法格式为:str.strip([chars])
参数说明:
str:为要去除空格的字符串。
chars:为可选参数,用于指定要去除的字符, 可以指定多个。
(2)lstrip()方法:用于去掉字符串左侧的空格和特殊字符,语法格式如下:str.lstrip([chars])
(3)rstrip()方法:用于去掉字符串右侧的空格和特殊字符,语法格式如下:str.rstrip([chars])
9.格式化字符串
(1)使用"%"操作符
语法格式:‘%[-][+][0][m][.n]格式化字符’%exp
参数说明:
-:可选参数,用于指定左对齐,正数前方无符号,负数前面加负号。
+:可选参数,用于指定右对齐,正数前方加正号,负数前面加负号。
0:可选参数,表示右对齐,正数前方无符号,负数前方加负号,用0填充空白处(一般与m参数一起使用)。
m:可选参数,表示占有宽度。
n:可选参数,表示小数点后保留的位数。
格式化字符:用于指定类型。
(2)使用字符串对象的format()方法
语法格式:str.format(args)
参数说明:
str:用于指定字符串的显示样式(即模板)。
args:用于指定要转换的项,如果有多项,则用逗号进行分隔。
下面重点介绍创建模板,在创建模板时,需要使用“{}”和“:”指定占位符,语法格式如下:
参数说明:
index:可选参数,用于指定要设置格式的对象在参数列表中的索引位置,索引值从0开始。如果省略,则根据值的先后顺序自动分配。
fill:可选参数,用于指定空白处填充的字符。
align:可选参数,用于指定对齐方式(值为“<”时表示内容左对齐;值为“>”时表示内容右对齐;值为“=”时表示内容右对齐,将符号放在填充内容的最左侧,且只对数字类型有效;值为“^”时表示内容居中),需要配合width一起使用。
sign:可选参数,用于指定有无符号数(值为“+”表示正数加正号,负数加负号;值为“-”表示正数不变;负数加负号,值为空格表示正数加空格,负数加负号)。
#:可选参数,对于二进制数、八进制数和十六进制数,如果加上#,表示会显示0b/0o/0x前缀,否则不显示前缀。
width:可选参数,用于指定所占宽度。
. precision:可选参数,用于指定保留的小数位数。
type:可选参数,用于指定类型。
format()方法中常用的格式化字符:
注:当一个模板中,出现多个占位符时,指定索引位置的规范需统一,即全部采用手动指定,或者全部采用自动。
10.字符串编码转换
(1)使用encode()方法编码
encode()方法为str对象方法,用于将字符串转换为二进制数据(即bytes),也称为“编码”,其语法格式为:str.encode([encoding="utf-8"][,errors="strict"])
参数说明:
str:表示要进行转换的字符串。
encoding="utf-8":可选参数,用于指定进行转码时采用的字符编码,默认为UTF-8,如果想使用简体中文,也可以设置为gb2312。也只有着一个参数时,也可以省略前面的“encoding=”,直接编码。
errors="strict":可选参数,用于指定错误处理方式,其可选择值可以是strict(遇到非法字符就会出现异常)、ignore(忽略非法字符)、replace(用“?”替代非法字符)或使用XML的字符引用等,默认值为strict。
注:在使用encode()方法时,不会修改原字符串,如果需要修改原字符串,需要对其进行重新赋值。
(2)使用decode方法解码
decode()方法为bytes对象的方法用于将二进制数据转换为字符串,即将使用encode()方法转换的结果再转换为字符串,也成为“解码”。语法格式为:其语法格式为:bytes.decode([encoding="utf-8"][,errors="strict"])
参数说明:
bytes:表示要进行转换的二进制数据,通常是encode的方法转换结果。
注:(1)在设置解码采用的字符编码时,需要与编码采用的字符编码一致。
(2)在使用decode()方法时,不会修改原字符串,如果需要修改原字符串,需要对其进行重新赋值
二,显示颜色
Print a string that starts a color/style, then the string, then end the color/style change with '\033[0m':
print('\033[6;30;42m' + 'Success!' + '\033[0m')
这样就可以输出 Success!
显示颜色格式:
\033[显示方式;字体色;背景色m String \033[0m
------------------------------------------- 字体色 | 背景色 | 颜色描述 ------------------------------------------- 30 | 40 | 黑色 31 | 41 | 红色 32 | 42 | 绿色 33 | 43 | 黃色 34 | 44 | 蓝色 35 | 45 | 紫红色 36 | 46 | 青蓝色 37 | 47 | 白色 ------------------------------------------- ------------------------------- 显示方式 | 效果 ------------------------------- 0 | 终端默认设置 1 | 高亮显示 4 | 使用下划线 5 | 闪烁 7 | 反白显示 8 | 不可见 -------------------------------