字符串格式化format很牛B

python的format方法可谓相当强大,它可以接受不限个参数。。。

1.通过位置来格式化字符串,注意format传入的参数的位置要正确{0}对应第1个参数,{1}对应第2个参数...

1 >>> ‘{0},{1}‘.format(‘kzc‘,18)
2 ‘kzc,18‘
3 >>> ‘{},{}‘.format(‘kzc‘,18)
4 ‘kzc,18‘
5 >>> ‘{1},{0},{1}‘.format(‘kzc‘,18)
6 ‘18,kzc,18‘
7 >>> 

位置映射实现

2.通过关键字参数,这样就可以不关心顺序问题,通过关键字传入值

1 >>> ‘{name},{age}‘.format(age=18,name=‘kzc‘)
2 ‘kzc,18‘

关键字实现

3.上面的通过关键字实现很像字典的key和value形式,那么能不能通过字典来格式化字符串呢?

1 dic = {‘ss‘:‘zhang‘,‘dd‘:20}
2 name = "i am {ss} ,age {dd}"  name.format(ss=dic[‘ss‘],dd=dic[‘dd‘])

通过字典传递参数

1 dic = {‘ss‘:‘zhang‘,‘dd‘:20}
2 name = "i am {ss} ,age {dd}"
3 name.format(**dic)

动态参数传递

4.既然format可以接受字典参数,列表也当然可以了。你的想法强大python就有多强大。。。

li=[‘awill‘,22]
name = "i am {0} , age {1}"
name.format(li[0],li[1])

通过列表的索引实现

1 li=[‘awill‘,22]
2 name = "i am {0} , age {1}"
3 name.format(*li)

列表的动态参数

1 li=[‘awill‘,22]
2 name = "i am {0[0]} , age {0[1]}"
3 name.format(li)

列表变种形式

5.格式限定符

它有着丰富的的“格式限定符”(语法是{}中带:号)
5.1 填充与对齐:

填充常跟对齐一起使用, ^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

1 >>> ‘{:>8}‘.format(‘189‘)
2 ‘     189‘
3 >>> ‘{:0<15}‘.format(‘awill‘)
4 ‘awill0000000000‘
5 >>> ‘{:*^20}‘.format(‘awill‘)
6 ‘*******awill********‘

填充与对齐

5.2 精度与类型f:

精度常跟类型f一起使用

如下:2表示长度为2的精度,f表示float类型。

1 >>> ‘{:.2f}‘.format(321.33545)#四舍五入
2 ‘321.34‘

float精度

5.3 其他类型

格式化指示符可以包含一个展示类型来控制格式。

展示类型有很多:
  ‘b‘ - 二进制。将数字以2为基数进行输出。
  ‘c‘ - 字符。在打印之前将整数转换成对应的Unicode字符串。
  ‘d‘ - 十进制整数。将数字以10为基数进行输出。
  ‘o‘ - 八进制。将数字以8为基数进行输出。
  ‘x‘ - 十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。
  ‘e‘ - 幂符号。用科学计数法打印数字。用‘e‘表示幂。
  ‘g‘ - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。
  ‘n‘ - 数字。当值为整数时和‘d‘相同,值为浮点数时和‘g‘相同。不同的是它会根据区域设置插入数字分隔符。
  ‘%‘ - 百分数。将数值乘以100然后以fixed-point(‘f‘)格式打印,值后面会有一个百分号。

 1 >>> ‘{:b}‘.format(15)
 2 ‘1111‘
 3 >>> type(‘{:b}‘.format(15))
 4 <class ‘str‘>
 5 >>> ‘{:d}‘.format(15)
 6 ‘15‘
 7 >>> ‘{:c}‘.format(15)
 8 ‘\x0f‘
 9 >>> ‘{:c}‘.format(65)
10 ‘A‘
11 >>> ‘{:o}‘.format(15)
12 ‘17‘
13 >>> ‘{:x}‘.format(15)
14 ‘f‘
15 >>> ‘{:e}‘.format(15)
16 ‘1.500000e+01‘
17 >>> ‘{:g}‘.format(15)
18 ‘15‘
19 >>> type(‘{:g}‘.format(15))
20 <class ‘str‘>
21 >>> ‘{:g}‘.format(15000000000000)
22 ‘1.5e+13‘
23 >>> ‘{:n}‘.format(15000000000000)
24 ‘15000000000000‘
25 >>> ‘{:n}‘.format(15.00234342)
26 ‘15.0023‘
27 >>> ‘{:g}‘.format(15.00234342)
28 ‘15.0023‘
29 >>> ‘{:%}‘.format(0.234342)
30 ‘23.434200%‘

5.4 用,号还能用来做金额的千位分隔符。

>>> ‘{:,}‘.format(1234567890)
‘1,234,567,890‘

6.通过对象属性

1 class Person:
2   def __init__(self,name,age):
3     self.name,self.age = name,age
4     def __str__(self):
5       return ‘This guy is {self.name},is {self.age} old‘.format(self=self) 

7.一些其他用法

 1 >>> print(‘{0:*>20}‘.format(‘awill‘))
 2 ***************awill
 3 >>> print(‘{0:4.2f}‘.format(1.1415926))
 4 1.14
 5 >>> print(format(1.1415926,‘<10.2f‘))
 6 1.14
 7 >>> print(‘{0:<10},{1:0<15}‘.format(‘awill‘,1.1415926))
 8 awill     ,1.1415926000000
 9
10 #输入形式的控制format
11 a = int(raw_input(‘a:‘))
12 b = int(raw_input(‘b:‘))
13 print(‘%*.*f‘ % (a, b, 1.1415926))#a对应第一个*,代表输出长度;b代表第二个*,代表输出小数位数
14 print( ‘%6.3f‘ % (1.1415926))#输出长度为6,小数位数是3(末位四舍五入)
15
16 print({array[2]}‘.format(array=range(10)))
17 print({attr.__class__}‘.format(attr=2.4))
18 print ({digit:*^ 10.5f}‘.format(digit=1.0/3))

杂技表演

时间: 2024-08-10 22:22:31

字符串格式化format很牛B的相关文章

字符串格式化format函数

本文来自https://www.cnblogs.com/liwenzhou/p/8570701.html python中字符串格式化可以用%和format函数 但是官方推荐使用format进行格式化,以下是一些扩展内容. s={'k1':'v1','k2':'v2'} print('这是{}?'.format(s)) 一个简单的小例子感觉format函数就方便一点. 在Python3.6中加入了f-strings: name='zz' age=18 print(f'My name is {nam

字符串格式化format方法

通过位置参数传参 print('{}, {}'.format('KeithTt', 18)) # KeithTt, 18 位置参数可以通过索引调用 print('{1}, {0}'.format('KeithTt', 18)) # 18, KeithTt 通过关键字参数传参 print('{name}, {age}'.format(name='KeithTt', age=18)) # KeithTt, 18 print('{age}, {name}'.format(name='KeithTt',

python 字符串格式化—format

Python2.6 开始,新增了一种格式化字符串的函数 str.format().使用起来简单方便,不会遇到使用%时候格式的选择问题. 按照参数默认顺序 >>> "yesday is {}, today is {}".format("saturday", "sunday") 'yesday is saturday, today is sunday' >>> 指定参数顺序 >>> "y

Python字符串格式化--format()的应用

1.简单运用 字符串类型格式化采用format()方法,基本使用格式是:转自 <模板字符串>.format(<逗号分隔的参数>) 调用format()方法后会返回一个新的字符串,参数从0 开始编号. "{}:计算机{}的CPU 占用率为{}%.".format("2016-12-31","PYTHON",10) Out[10]: '2016-12-31:计算机PYTHON的CPU 占用率为10%.' format()方法可

python之字符串格式化(format)

用法: 它通过{}和:来代替传统%方式 1.使用位置参数 要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表 >>> li = ['hoho',18] >>> 'my name is {} ,age {}'.format('hoho',18) 'my name is hoho ,age 18' >>> 'my name is {1} ,age {0}'.form

JAVA字符串格式化-String.format()的使用(转)

常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重载形式. format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串. format(Locale locale, String format, Object... args) 使用指定的语言环境,制定字符串格式和参

JAVA字符串格式化-String.format()的使用

常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重载形式. format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串. format(Locale locale, String format, Object... args) 使用指定的语言环境,制定字符串格式和参

Java系列: JAVA字符串格式化-String.format()的使用(zz)

常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重载形式. format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串. format(Locale locale, String format, Object... args) 使用指定的语言环境,制定字符串格式和参

Java字符串格式化String.format常用用法

常规的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重载形式. format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串. format(Locale locale, String format, Object... args) 使用指定的语言环境,制定字符串格式和参数生