Python字符串format()格式化中冒号(:)的作用是什么?
Python
str.format() 占位符中冒号的作用解答 Python 的 str.format() 方法的占位符完整语法规则如下:
{[字段索引/字段名][!转换类型][:格式说明符]}
其中冒号:是固定的语法分隔符,作用是标记「格式说明符」部分的起始位置,冒号本身不会被输出到最终结果中。
疑问1解答
print("It's now: {:%Y/%m/%d %H:%M:%S}".format(date)) 中的冒号作用:
- 冒号后面的
%Y/%m/%d %H:%M:%S是 datetime 类型专属的格式说明规则 - 冒号告诉解释器:后面的内容是用来格式化传入的
date对象的规则,需要按照该规则将 datetime 对象转为对应格式的字符串,所以冒号不会出现在输出结果里。
疑问2解答
print("Adam's age is: {:age}".format(Person())) 中的冒号作用:
- 冒号后面的
age是传给自定义类__format__方法的格式说明参数 - 解释器执行格式化时,会自动把冒号后的内容作为参数传入对应实例的
__format__方法,你的代码中判断如果传入的格式说明为age就返回23,因此最终输出对应结果。
举个更简单的常见用例方便理解:
# 把数字12格式化为5位长度,不足补前导0,输出 00012 print("{:0>5d}".format(12))
这里冒号后的 0>5d 就是数字类型的格式说明符,冒号仅作分隔使用。
内容的提问来源于stack exchange,提问作者YumekaMengjiaLYU
相关产品推荐
相关产品推荐

