Python基础语法 字符串的格式化

格式化字符串

(一)使用%操作符

  • ‘%[-][+][0][m][.n]格式化字符’ % exp
    -:可选参数,用于指定左对齐,正数前方无符号,负数前面加负号
    +:可选参数,用于指定右对齐,正数前方加符号,负数前面加负号
    0:可选参数,表示右对齐,正数前方无符号,负数前面加负号,用0填充空白处(通常与m参数一起使用)
    m:可选参数,表示占有宽度
    格式化字符:用于指定类型
    exp:要转换的项,若有多个,则需要通过元组的方式进行指定,不能使用列表
#定义模板
template='编号:%09d\t公司名称:   %s\t官网:   http://www.%s.com'
# 如果要转换的项有多个,需要通过元组的形式进行指定
context1=(7,'百度','baidu')
context2=(8,'明日学院','mingrisoft')
#格式化输出
print(template%context1)
print(template%context2)
编号:000000007	公司名称:   百度	官网:   http://www.baidu.com
编号:000000008	公司名称:   明日学院	官网:   http://www.mingrisoft.com

Process finished with exit code 0

(二)使用字符串对象的format方法

  • str.format(args)
    str:模板
    args:用于指定要转换的项,若有多项,用逗号隔开
  • 在创建模板时,使用 {} 和 : 指定占位符
    {[index][:[[fill]align][sign][#][width][.precision][type]]}
  • index:可选参数,用于指定要设置格式的对象在参数列表中的位置,索引值从0开始,若省略按照值的先后顺序自动分配
  • 注意:'我是数值:{:d},我是字符串{1:s}的模板是错误的
  • fill:可选参数,用于指定空白处填充的字符
  • align:
  • < 左对齐
    > 右对齐
    = 右对齐,符号左填充,只对数字类型有效
    ^ 居中,配合width使用
  • sign:
  • +: 正数加正号,负数加负号
    正数不变,负数加负号
    空格 正数加空格,负数加-
  • #:可选参数,对于二进制,八进制和十六进制,如果指定#,表示会显示 0b\0o\0x 前缀
  • width:可选参数,用于指定所占宽度
  • .precision:可选参数,用于指定保留的小数位数
  • type:可选参数,用于指定类型
#定义模板
template='编号:{:0>9s}\t公司名称:  {:s}\t官网:  http://www.{:s}.com'
context1=template.format('7','百度','baidu')
context2=template.format('8','明日学院','mingrisoft')
print(context1)
print(context2)

print('---------------------------------------------------------')
#格式化不同的数值类型数据
import math
print('1251+3560的结果是(以货币形式显示):¥{:,.2f}元'.format(1251+3560))
print('{0:.1f}用科学计数法表示:{0:E}'.format(120000.1))
print('π取5位小数点:{:.5f}'.format(math.pi))
print('{0:d}的16进制结果是:{0:#x}'.format(100))
print('天才是由{:.0%}的灵感,加上{:.0%}的汗水。'.format(0.01,0.99))
编号:000000007	公司名称:  百度	官网:  http://www.baidu.com
编号:000000008	公司名称:  明日学院	官网:  http://www.mingrisoft.com
---------------------------------------------------------
1251+3560的结果是(以货币形式显示):¥4,811.00120000.1用科学计数法表示:1.200001E+05
π取5位小数点:3.14159
10016进制结果是:0x64
天才是由1%的灵感,加上99%的汗水。

Process finished with exit code 0

你可能感兴趣的:(Python基础语法)