欢迎访问宙启技术站
智能推送

format()方法的使用和格式化规则

发布时间:2023-06-26 05:28:16

format()方法是Python内置的字符串格式化函数,可以将参数传递到字符串中,以指定的格式输出字符串。在实际的编程中,format()方法可以用来处理各种复杂的输出格式需求,包括数字、日期、时间等。本文将阐述format()方法的用法和常用的格式化规则。

基本用法

format()方法的基本语法如下:

str.format(args...)

其中,str表示要格式化的字符串,args表示要传递的参数。可以传递多个参数,也可以只传递一个参数。例如:

>>> '{} {}'.format('hello', 'world')

'hello world'

>>> '{} {}'.format('world', 'hello')

'world hello'

在这个例子中,{}是占位符,表示要插入参数的位置。可以用数字或方括号来指定要插入的参数的位置。例如:

>>> '{0} {1}'.format('hello', 'world')

'hello world'

>>> '{1} {0}'.format('world', 'hello')

'hello world'

>>> '{name} is {age} years old.'.format(name='Tom', age=18)

'Tom is 18 years old.'

在第一个例子中,0表示第一个参数(即'hello'),1表示第二个参数(即'world')。在第二个例子中,1表示第一个参数(即'world'),0表示第二个参数(即'hello')。在第三个例子中,name和age是关键字参数,可以将它们替换到占位符中。

格式化规则

format()方法支持多种格式化规则,用来格式化不同类型的数据。下面是一些常用的规则:

整数规则

整数规则用于格式化整数,常用的整数规则有:

    {:d}:十进制整数。

    {:b}:二进制整数。

    {:o}:八进制整数。

    {:x}:十六进制整数(小写)。

    {:X}:十六进制整数(大写)。

例如:

>>> '{:d}'.format(10)

'10'

>>> '{:b}'.format(10)

'1010'

>>> '{:o}'.format(10)

'12'

>>> '{:x}'.format(10)

'a'

>>> '{:X}'.format(10)

'A'

浮点数规则

浮点数规则用于格式化浮点数,常用的浮点数规则有:

    {:f}:浮点数(默认保留6位小数)。

    {:.2f}:浮点数,保留2位小数。

    {:e}:科学计数法表示浮点数。

    {:E}:科学计数法表示浮点数(大写)。

    {:g}:根据有意义的有效数字输出浮点数。

    {:G}:根据有意义的有效数字输出浮点数(大写)。

例如:

>>> '{:f}'.format(3.1415926)

'3.141593'

>>> '{:.2f}'.format(3.1415926)

'3.14'

>>> '{:e}'.format(1000000000)

'1.000000e+09'

>>> '{:E}'.format(1000000000)

'1.000000E+09'

>>> '{:g}'.format(3.1415926)

'3.14159'

>>> '{:G}'.format(3.1415926)

'3.14159'

字符串规则

字符串规则用于格式化字符串,常用的字符串规则有:

    {:s}:字符串。

    {:30s}:字符串,占30个字符的宽度,左对齐。

    {:>30s}:字符串,占30个字符的宽度,右对齐。

    {:^30s}:字符串,占30个字符的宽度,居中对齐。

    {:*^30s}:字符串,占30个字符的宽度,居中对齐,不足部分用*填充。

例如:

>>> '{:s}'.format('hello')

'hello'

>>> '{:30s}'.format('hello')

'hello                         '

>>> '{:>30s}'.format('hello')

'                         hello'

>>> '{:^30s}'.format('hello')

'             hello            '

>>> '{:*^30s}'.format('hello')

'*************hello*************'

时间日期规则

时间和日期规则用于格式化时间和日期,常用的时间和日期规则有:

    {:d}:十进制整数。

    {:02d}:十进制整数,宽度为2,不足2位前面补0。

    {:4d}:十进制整数,宽度为4,不足4位前面补空格。

    {:02X}:十六进制整数,宽度为2,不足2位前面补0(大写)。

    {:02x}:十六进制整数,宽度为2,不足2位前面补0(小写)。

    {:04X}:十六进制整数,宽度为4,不足4位前面补0(大写)。

    {:04x}:十六进制整数,宽度为4,不足4位前面补0(小写)。

    {:b}:二进制整数。

    {:08b}:二进制整数,宽度为8,不足8位前面补0。

    {:o}:八进制整数。

    {:04o}:八进制整数,宽度为4,不足4位前面补0。

    {:x}:十六进制整数(小写)。

    {:X}:十六进制整数(大写)。

    {:08X}:十六进制整数,宽度为8,不足8位前面补0(大写)。

    {:08x}:十六进制整数,宽度为8,不足8位前面补0(小写)。

    {:f}:浮点数(默认保留6位小数)。

    {:.2f}:浮点数,保留2位小数。

    {:e}:科学计数法表示浮点数。

    {:E}:科学计数法表示浮点数(大写)。

    {:g}:根据有意义的有效数字输出浮点数。

    {:G}:根据有意义的有效数字输出浮点数(大写)。

例如:

>>> import datetime

>>> '{0:%Y-%m-%d %H:%M:%S}'.format(datetime.datetime.now())

'2022-04-04 11:32:16'

>>> '{:%Y-%m-%d}'.format(datetime.date(2022, 4, 4))

'2022-04-04'

>>> '{:%H:%M:%S}'.format(datetime.time(10, 21, 43))

'10:21:43'

>>> '{:02d}:{:02d}:{:02d}'.format(10, 21, 43)

'10:21:43'

>>> '{:04d}-{:02d}-{:02d}'.format(2022, 4, 4)

'2022-04-04'

>>> '{:%m/%d/%Y %I:%M%p}'.format(datetime.datetime.now())

'04/04/2022 11:32AM'

总结

format()方法是Python内置的字符串格式化函数,可以用来处理各种复杂的输出格式需求。本文介绍了format()方法的基本用法和常用的格式化规则,包括整数规则、浮点数规则、字符串规则和时间日期规则。在实际编程中,需要根据输出需求选择合适的格式化规则,灵活使用format()方法。