format 用法

hon2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足。那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱。
语法

它通过{}和:来代替%。
“映射”示例

通过位置


1

2

3

4

5

6

In [1]: ‘{0},{1}‘.format(‘kzc‘,18)

Out[1]: ‘kzc,18‘

In [2]: ‘{},{}‘.format(‘kzc‘,18)

Out[2]: ‘kzc,18‘

In [3]: ‘{1},{0},{1}‘.format(‘kzc‘,18)

Out[3]: ‘18,kzc,18‘

字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次,不过2.6不能为空{},2.7才可以。
通过关键字参数


1

2

In [5]: ‘{name},{age}‘.format(age=18,name=‘kzc‘)

Out[5]: ‘kzc,18‘

通过对象属性


1

2

3

4

5

class Person:

  def __init__(self,name,age):

    self.name,self.age = name,age

    def __str__(self):

      return ‘This guy is {self.name},is {self.age} old‘.format(self=self)


1

2

In [2]: str(Person(‘kzc‘,18))

Out[2]: ‘This guy is kzc,is 18 old‘

通过下标


1

2

3

In [7]: p=[‘kzc‘,18]

In [8]: ‘{0[0]},{0[1]}‘.format(p)

Out[8]: ‘kzc,18‘

有了这些便捷的“映射”方式,我们就有了偷懒利器。基本的python知识告诉我们,list和tuple可以通过“打散”成普通参数给函数,而dict可以打散成关键字参数给函数(通过和*)。所以可以轻松的传个list/tuple/dict给format函数。非常灵活。
格式限定符

它有着丰富的的“格式限定符”(语法是{}中带:号),比如:

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


1

2

3

4

5

6

In [15]: ‘{:>8}‘.format(‘189‘)

Out[15]: ‘   189‘

In [16]: ‘{:0>8}‘.format(‘189‘)

Out[16]: ‘00000189‘

In [17]: ‘{:a>8}‘.format(‘189‘)

Out[17]: ‘aaaaa189‘

精度与类型f
精度常跟类型f一起使用


1

2

In [44]: ‘{:.2f}‘.format(321.33345)

Out[44]: ‘321.33‘

其中.2表示长度为2的精度,f表示float类型。

其他类型
主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。


1

2

3

4

5

6

7

8

In [54]: ‘{:b}‘.format(17)

Out[54]: ‘10001‘

In [55]: ‘{:d}‘.format(17)

Out[55]: ‘17‘

In [56]: ‘{:o}‘.format(17)

Out[56]: ‘21‘

In [57]: ‘{:x}‘.format(17)

Out[57]: ‘11‘

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


1

2

In [47]: ‘{:,}‘.format(1234567890)

Out[47]: ‘1,234,567,890‘

时间: 2024-09-28 16:52:55

format 用法的相关文章

C#中string.format用法详解 [转载]

这篇文章主要介绍了C#中string.format用法,以实例形式较为详细的讲述了string.format格式化的各种用法,非常具有实用价值,需要的朋友可以参考下 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项.String.Format (String, Obj

String.Format用法

1.作为参数   名称 说明   Format(String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项.   Format(String, array<>[]()[]) 将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项.   Format(IFormatProvider, String, array<>[]()[]) 将指定 String 中的格式项替换为指定数组中相应 Object

C#中string.Format 用法详解

这篇文章主要介绍了C#中string.format用法,以实例形式较为详细的讲述了string.format格式化的各种用法,非常具有实用价值,需要的朋友可以参考下 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项.String.Format (String, Obj

格式化输出(%用法和format用法)

一.格式化输出1.整数的输出%o -- oct 八进制%d -- dec 十进制%x -- hex 十六进制 1 >>> print('%o' % 20) 2 24 3 >>> print('%d' % 20) 4 20 5 >>> print('%x' % 20) 6 14 2.浮点数输出(1)格式化输出%f --保留小数点后面六位有效数字 %.3f,保留3位小数位%e --保留小数点后面六位有效数字,指数形式输出 %.3e,保留3位小数位,使用科学

Python2.6与Python2.7的format用法区别

Python2.6不支持format(123456L, ",")或format(123, ",")的format用法,会报下面的错误 ValueError: Unknown format code ',' for object of type 'long' ValueError: Unknown format code ',' for object of type 'int' Python2.7支持format(123456L, ",")或for

python format 用法详解

format 用法详解 不需要理会数据类型的问题,在%方法中%s只能替代字符串类型 单个参数可以多次输出,参数顺序可以不相同 填充方式十分灵活,对齐方式十分强大 官方推荐用的方式,%方式将会在后面的版本被淘汰 format填充字符串 一 填充 1.通过位置来填充字符串 print('hello {0} i am {1}'.format('world','python')) # 输入结果:hello world i am python print('hello {} i am {}'.format

python基础_格式化输出(%用法和format用法)

%用法 1.整数的输出 %o —— oct 八进制%d —— dec 十进制%x —— hex 十六进制 >>> print('%o' % 20) 24 >>> print('%d' % 20) 20 >>> print('%x' % 20) 14 2.浮点数输出 2.1 格式化输出 %f ——保留小数点后面六位有效数字 %.3f,保留3位小数位%e ——保留小数点后面六位有效数字,指数形式输出 %.3e,保留3位小数位,使用科学计数法%g ——在保证

c++ format 用法[转]

Format是一个很常用,却又似乎很烦的方法,以下是它的完整概貌,以供大家查询之用: 一.字符串 首先看它的声明:function Format(const Format: string; const Args: array of const): string; overload;事实上Format方法有两个种形式,另外一种是三个参数的,主要区别在于它是线程安全的,但并不多用,所以这里只对第一个介绍: function Format(const Format: string; const Arg

&lt;JDK&gt;&lt;一&gt;MessageFormat.format用法

一,网上案例 用法1: 1 String msg = "{0}{1}{2}{3}{4}{5}{6}{7}{8}"; 2 Object [] array = new Object[]{"A","B","C","D","E","F","G","H","I",}; 3 String value = MessageF

Python格式化输出——format用法示例

format OR % 提到Python中的格式化输出方法,一般来说有以下两种方式: print('hello %s' % 'world') # hello world print('hello {}'.format('world')) # hello world 到底哪种好呢,反正对我来说,用了.format()之后就再也不想用%了. format()不用理会数据类型,%s,%f等等我记不完: format()功能更丰富,填充方式,对齐方式都很灵活,让你的打印效果更美观: format()是官