format()方法的使用和格式化规则
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()方法。
