Python:字符串的格式化

字符串的格式化

(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的整数转换中不允许出现精度描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值