今天肝完字符串。
print("{pi!s} {pi!r} {pi!a}".format(pi="π"))
以上代码输出π ‘π’ ‘\u03c0’,其中!后分别表示用str,repr,ascii进行转换。也可以:后设置数据类型。
from math import pi print(" {a:f} ".format(a=pi))
b | 将整数表示为二进制数 |
c | 将整数表示为Unicode |
d | 十进制整数(默认) |
e | 科学计数法表示小数 |
E | 与e相同,但用E表示整数 |
f | 浮点数 |
F | 与f相同,但用于表示特殊类型(inf,nan) |
g | 自动在科学计数法和浮点数做出选择,默认用于小数 |
G | 与g相同,但使用大写来表示指数和特殊值 |
n | 与g相同,但插入数字分隔符 |
o | 八进制整数 |
s | 字符串 |
o | 八进制整数 |
x | 十六进制整数(小写) |
X | 十六进制整数(大写) |
% | 百分比值 |
还可以设置宽度,精度和分隔符:
from math import pi print(" {a:20,.10f} ".format(a=pi*10000)) print(" {a:20s} ".format(a="Hello world")," {a:s} ".format(a="Hello world"))
有时为了整齐,需要设置符号,对齐和填充0。
from math import pi print(" {a:010.2f} ".format(a=pi)) #填充0 print(" {a:<20s}\n{a:^20s}\n{a:>20s} ".format(a="Hello world")) # 居左,中,右 print(" {a:^20s} ".format(a="Hello world")) #用填充 print(" {a:10.2f}\n{b:=10.2f}".format(a=pi,b=-pi)) #=表示指定位置填充字符 print(" {a:10.2f}\n{b:=+10.2f}".format(a=pi,b=pi)) #整数加符号
最后还有井号选项:
print(" {:#b} ".format(42)) #二进制前填充0b print(" {:#g} ".format(42)) #强制添加小数点
下面介绍字符串的常用高级操作,使用方法为字符串后加点,例如a.center().:
center:两个参数(长度,填充字符),例如a.center(19,*)。使字符串居中,填充字符不填默认为空格。
find:两个参数(字符串,初始索引,结束索引),用于查找子串。例如:a.find(“Hello”),找到返回子串第一个字符的索引,未找到返回-1。初始索引不填默认为0,结束索引默认为字符串尾。
join:一个参数(字符串),用于合并一个序列的元素(序列中的所有元素必须是字符串)。示例:
a=["C:/","Windows","User"] print("/".join(a))
lower:一个参数(字符串),返回小写字母版本。
replace:两个参数(子串,字符串),将子串替换为另一个字符串,返回替换后的结果。
split:与join相反,拆分字符串。
strip:默认删除开头和结尾空白字符,可以指定删除何种字符,例如a.strip(‘ *!’)(删除*、!和空格)。
translate:替换字符串中的特定部分,但能同时替换多个字符,效率比replace高。使用前需要创建转换表(两个长度相同的字符串,将第一个字符串每个字符都替换为第二个字符串中对应的字符),个人认为转换表不实用,不过也可以传入字典(后续学习)。示例:
a=str.maketrans("hello","aaaaa"," c") #第三个参数可有可无,为删除指定字符 b="hello world ccc" print(b.translate(a))