Python format()函数
时间:2020-02-23 14:42:43 来源:igfitidea点击:
Python format()函数用于根据提供的格式规范将给定的对象转换为字符串表示形式。
Python格式()
Python format()函数语法为:
format(value[, format_spec])
该函数调用"值"对象的__format __()
方法。
我们可以为我们的自定义类定义此函数,以对其使用format()函数。
一些数字格式选项是:
‘+’–符号应同时使用正数和负数。
‘-’–符号只能与负数一起使用,这是默认行为。
%–乘以100并以百分比显示
" b"," o"," x"," X" –将整数转换为二进制,八进制和十六进制格式。
小写字母将用于" x",大写字母将与" X"一起使用。
这些仅适用于整数。" e"," E"," f"," F" –与浮点数一起使用,分别用于指数表示法和定点表示法
让我们看一些使用format()函数和数字的示例。
# integers print(format(10, '+')) print(format(15, 'b')) print(format(15, 'x')) print(format(15, 'X')) # float print(format(.2, '%')) print(format(10.5, 'e')) print(format(10.5, 'e')) print(format(10.5345678, 'f')) print(format(10.5, 'F'))
输出:
+10 1111 f F 20.000000% 1.050000e+01 1.050000e+01 10.534568 10.500000
自定义对象的Python format()函数
让我们看看如何将format()函数与自定义对象一起使用。
我们将创建一个类并为其定义__format __()
函数。
该函数必须返回字符串,否则我们将得到错误。
class Data: id = 0 def __init__(self, i): self.id = i def __format__(self, format_spec): print('__format__ method called') if format_spec == 's': return "Data[id=%s]" % self.id if format_spec == 'i': return str(self.id) else: return 'invalid format spec'
请注意,我正在根据输入格式规范来格式化对象。
如果提供了无法识别的格式规范,我将返回错误字符串。
我们还可以抛出异常,以由调用代码处理。
d = Data(20) print(format(d, 's')) print(format(d, 'i')) print(format(d, 'x'))
输出:
__format__ method called Data[id=20] __format__ method called 20 __format__ method called invalid format spec