第三章 使用字符串
3.1 所有序列操作都适用于字符串,但字符串是不可变的,因此所有元素的赋值和切片赋值是非法的。
3.2 字符串格式化
替换字段: 使用{{内容}}, 然后调用format方法,
‘’’"bb{{abcd}}bb".format("ffff") ’’’
替换字段由下面几个组成:
- 字段名(索引和标识符),
- 转换标志(跟在!后面的字符,暂时为:!r、!s、!a),
- 格式化说明符号,跟在冒号后面的表达式,如{:f},
ffullname = ["Alfred", "Smoketoomuch"]
aa = "{0} {number} price, Mr {name[1]}".format("love", number = 100,name = fullname)
print(aa)
///love 100 price, Mr Smoketoomuch
使用name可以指定模块的名称,还可以使用点语法调用方法。
teml = "The {mod.__name__} module defines the value {mod.pi} for π"
new_teml = teml.format(mod = math)
print(new_teml)
////The math module defines the value 3.141592653589793 for π
转换标志如下:
teml = "{pi!s}, {pi!r}, {pi!a}"
new_teml = teml.format(pi = "π")
print(new_teml)
///π, 'π', '\u03c0'
格式化说明符如下:
b: 二进制 c: 将证书解读为Unicode码点 d: 十进制
e: 科学计数法表示小数,e为指数 f: 将小数表示为浮点数
o: 八进制 x: 十六进制 %: 百分比值
3.3 宽度、精度和千位分隔符
#指定宽度10
print("{num: 10}".format(num = 3))
#指定精度10
print("{num: .10f}".format(num = 3))
#指定宽度5,精度为1
print("{num: 5.1f}".format(num = 3))
#千位分隔符
print("{num: ,}".format(num = 3 ** 100))
///输出
3
3.0000000000
3.0
515,377,520,732,011,331,036,461,129,765,621,272,702,107,522,001
3.4 符号、对齐和用0填充
左对齐, 右对齐, 居中分别用<, > 和^表示, 和符号转换。
#10前面的0表示填充数字
print("{num: 010.2f}".format(num = 3))
#居中
print("{num: ^10}".format(num = "three"))
#加符号说明符,或者加#号和符号说明符,会触发转换
print("{num: b}".format(num = 51))
print("{num: #b}".format(num = 51))
///输出
000003.00
three
110011
0b110011
3.5 函数
center: 方法center通过在两边添加填充字符串,让字符串居中。
find: 查找字符串,如果找到,返回第一个字符的索引,否则返回-1.
join: 将序列的元素合并成字符串
lower: 将字符串转为小写
replace: 将指定字符串替换为另一个字符串
split: 将字符串拆分为序列
strip: 将字符串开头和末尾空白去除,并返回删除结果。
translate: 能进行单字符替换,可同时替换多个字符。需先创建转换表
ascii: 将对象ASCLL表示
Capwords: 使用split拆分后,将每项的首字母大写,再用空格为分隔符将他们合并起来。
3.5 判断字符串是否满足特定的条件。在字符串方法前面以is开头,如isspace,isdigit,islower等。










网友评论