python函数深入浅出 4.format()函数详解

1.函数名及其来源

format() 函数命名来源于英文单词format(格式,格式化)。
用于将字符串格式化

format 函数的基本语法格式为:

string.format()

格式化输入有非常多的应用场景,相比于其他形式的字符串拼接,
format使用更灵活,也能实现更多的功能

2.函数定义源码及其用法拆解

通常在编码场景中有如下使用场景需要用到format()

  • 使用位置参数;位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表
>>> li = ['hoho',18,165,89]
>>> 'my name is {} ,age {}'.format('hoho',18) #按顺序填充{},这对括号理解为占位符
'my name is hoho ,age 18'
>>> 'my name is {1} ,age {0}'.format(10,'hoho')#注意{}中指定了参数顺序,顺序从0开始
'my name is hoho ,age 10'
>>> 'my name is {1} ,age {0} {1}'.format(10,'hoho')# 参数可出现多次
'my name is hoho ,age 10 hoho'
>>> 'my name is {} ,age {}, height {}cm,weight {} kg'.format(*li) #*列表传参
'my name is hoho ,age 18, height 165cm,weight 89 kg'
  • 使用关键字参数

要点:关键字参数值要对得上,可用字典当关键字参数传入值,字典前加**即可

>>> hash = {'name':'hoho','age':18}
>>> 'my name is {name},age is {age}'.format(name='hoho',age=19)
'my name is hoho,age is 19'
>>> 'my name is {name},age is {age}'.format(**hash) #这种方式更常用
'my name is hoho,age is 18'
  • 填充与格式化

:[填充字符][对齐方式 <^>][宽度]

>>> '{0:*>10}'.format(a)  ##右对齐
'********a'
>>> '{0:*<10}'.format(b)  ##左对齐
'b********'
>>> '{0:*^20}'.format('我是分割线')  ##居中对齐
'*******我是分割线********'
  • 精度与进制
>>> '{0:.2f}'.format(1/3)  # 保留2位小数的写法
'0.33'
>>> '{0:b}'.format(10)     #二进制 b 是binary的缩写
'1010'
>>> '{0:o}'.format(10)     #八进制 
'12'
>>> '{0:x}'.format(10)     #16进制
'a'
>>> '{:,}'.format(12369132698)  #千分位格式化,只能对纯数字使用
'12,369,132,698'
  • 使用索引
>>> li
['hoho', 18]
>>> 'name is {0[0]} age is {0[1]}'.format(li)
'name is hoho age is 18

3.版本差异

无版本差异

4.学习建议

format()可以用在多个场景下满足不同格式化需求,对比传统的%s拼接更值得掌握

对基础运行环境有疑问的,推荐参考:python函数深入浅出 0.基础篇

你可能感兴趣的:(python函数深入浅出 4.format()函数详解)