第3章 使用字符串
1.字符串基本操作
所有标准序列操作(索引、切片、成员资格检查、长度、最小值和最大值)都适用
#字符串不可变,因此不能对字符串元素赋值。
2.设置字符串的格式:精简版
(1)以前使用%设置字符串格式#类似与C的printf:
在%左边指定一个字符串,在右边指定要设置其格式的值(可以是单个值、元组、字典)。
例:
format = "hello, %s, %s enough for ya?"
values = ('world', 'hot')
format % values
结果输出
>>>'hello, world, hot enough for ya?'
其中 %s 是转换说明符,指出将值插入的地方。
s将值视为字符串进行格式设置。
(2)另一种方法是使用模版字符串。
from string import Template
tp = Template("Hello,$who!")
tp.substitute(who="GM")
!!!编写新代码时,应使用字符串方法 format
将替换字段用花括号{}扩起,({}中可能包含名称和格式设置的信息)
例子:"{}, {} and {}".format("first", "second", "third")
得到:'first, second and third'
"{3} {0} {2} {1} {3} {0}".format("be", "not", "or", "to")
得到:'to be or not to be'
"{name} is approxiamtely {value:.2f}.".format(value=pi, name = "π")
得到'π is approxiamtely 3.14.'
#.2f 是格式说明符,使用:与字段名隔开
表示两位小数的浮点数
# python3.6种,如果变量与替换字段同名,可以使用另一种简写:
使用f字符串 ----字符串前面加f
如:
from math import e
f"Euler's constant is roughly {e}."
#与"Euler's constant is roughly {e}.".format(e=e) 等价
3. 设置字符串的格式:完整版
基本方法是对字符串调用方法 format并提供要设置格式的值。
字符串包含有关如何设置格式的信息
每个值都被插入字符串中 替换{}扩起的替换字段。
#要在最终结果包含{}可使用双 花括号
例子:"{{ -...- }}".format()
得到'{ -...- }'
替换字段:
替换字段由 字段名、转换标志、格式说明符组成,其中每个部分都是可选的。
字段名:索引或标识符,指出要设置哪个值的格式 并替换该字段。 还可指定值的特定部分(如列表的元素)
转换标志:跟在叹号 ! 后面的单个字符。如
r(repr)、s(str)、a(ascii)。如果指定了转换标志,将使用指定函数将对象转换为字符串。
格式说明符:跟在冒号 :后面的表达式。格式说明符让我们能够详细地指定最终的格式。包括格式类型、宽度、精度 ,显式符号和千位分 隔符、对齐和填充方式。
替换字段名
1.给format提供未命名参数,将按顺序匹配
"{} {}".format(1,2)
得到:'1,2'
2. 给参数指定名称,替换相应字段。
"{two},{one}".format(notallow=1,two=2)
得到:'2,1'
3.使用索引指定相应参数
"{1} {0}".format("be","to")
得到:'to be'
4.可提供值的组成部分
names = ["al","be"]
"Mr {names[1]}".format(names=names)
得到'Mr be'
基本转换
转换标志:
1.提供转换标志
print("{pi!s} {pi!r} {pi!a}".format(pi="π"))
得到:π 'π' '\u03c0'
使用格式说明符:
2.指定转换的值的类型
"The number is {num:f}".format(num=42)
得到'The number is 42.000000'
3.宽度、精度和千位分隔符
"{num:10}".format(num=3) #设置num宽度为10
得到:' 3'
"{pi:10.2f}".format(pi=pi)
#设置精度,使用 .精度 来设置 f指定了类型为浮点数
得到:' 3.14'
"One googol is {:,}".format(10**100)
#使用, 指出添加千位分隔符
#同时指定其他格式设置元素时,这个逗号应放在宽度和表示精度的句点之间
得到:“'One googol is 10,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000'
4.符号、对齐和用0填充
在宽度和精度前,可添加一个标志(0,+,-,空格等)
0表示用0填充
< > ^ 设置左对齐、右对齐、居中
#可使用填充字符来扩充对齐说明符,如"{:$^15}" 将使用$填充缺少的位
= 指定填充字符放在符号和数字之间。
+ 给正数加符号
# 在符号说明符和宽度之间,给二进制、八进制、十六进制加上前缀.
字符串方法:
1.center 两边填充字符,让字符居中
2.find 查找子串,有则返回第一个索引,无则返回-1
3.join 合并序列的元素(字符串)
4.lower 小写
5.replace 替换
6.split 拆分
7.strip 删除头尾的空白
8.translate 替换 同时替换多个字符 使用前需要创建转换表table = str.maketrans('cs','kz')#c-k s-z 提供第3个参数删除指定的字母
9.判断字符串
isspace,isdigit,isupper......