字符串的格式化
(1)简单格式化功能
(2)格式化操作(format函数)
字符串的类型名为str,要将数据对象生成文本输出,就需要进行字符串化。调用print函数时,如果实际参数不是str,print就会自动对它调用str。
简单格式化功能
操作 | 意义 |
---|---|
s.center(n) | 得到将s串居中的长度为n的字符串 |
s.ljust(n) | 得到将s串居左的长度为n的字符串 |
s.rjust(n) | 得到将s串居右的长度为n的字符串 |
可以用另一参数指定填充字符(默认为空格)。e.g. s.rjust(6,‘0’),要求用‘0’填充空格
代码实现:
from random import randint
for i in range(5):
print(str(randint(1,100)**4).rjust(10),
str(randint(1,100)**4.ljust(10),
str(randint(1,100)**4.center(10))
输出:
37015056 81450625 160000
160000 38416 57289761
18974736 531441 2401
71639296 14641 92236816
15752961 1679616 83521
格式化操作
形式:s.format(*args, **kwargs)
- s是描述格式化方式的字符串,称为格式串
- *args表示format方式接受任意多个实参(表达式)
- **kwargs表示还可以有任意多个关键字实参
- s中可出现用{…}表示的位置,称为替换域,他们将分别调用实参表达式产生的字符串替代
默认形式:“A {} is {} but {}.".forma(arg0, arg1,arg2)
e.g.
>>>“A {} is {} but {}.".forma('a', 'not b', 'c')
A a is not b but c.
在替换域里写整数表示实参表达式的下标以替换位置:
e.g.
>>>“A {2} is {1} but {0}.".forma('a', 'not b', 'c')
A c is not b but c.
也可以通过给替换域命名指明特定的关键字实参:
e.g.
>>>“A {a} is {b} but {c}.".forma(a = 'pig', b = 'fat', c = 'smart')
A pig is fat but smart.
转换描述
在确定实参关联的整数或关键字之后,可以写一个冒号“:”,后随一个转换描述
-
描述对齐方式的字符: < 、>、^,分别表示对于该替换域的内容应在特定范围内采用居左、居右、居中的对齐方式,可以在对齐字符串前加一个填充字符
-
整数表示本替换域实际占据的最小宽度,如果替换内容超出,将根据实际情况确定宽度,默认宽度由实际内容确定
-
用一个字符表示的转换类型:
字符 转换类型 s 字符串 d 十进制整数 e 和 E 科学计数法 g 和 G 根据情况自动采用浮点数形式或科学形式 f 和 F 小数部分的位数(精度)
e.g.
{1:->10s} 第1个实参,采用字符串形式,宽10字符,右对齐,填充字符为 -
{price:10.2f} 域名为price,采用浮点数形式,宽10字符,小数点后2位
{:<<10d} 十进制形式,宽10字符,居左,用字符 < 填充
注意:
- 转换类型为s时,实际参数必须是字符串
- 转换类型为d时,实际参数必须是整数
- 转换类型为f/F/e/E/g/G时,实际参数可以是整数或者浮点数
- d的整数转换中不允许出现精度描述