![Python 3.7从入门到精通(视频教学版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/212/31476212/b_31476212.jpg)
上QQ阅读APP看书,第一时间看更新
4.3 格式化字符串
Python支持格式化字符串的输出。字符串格式化使用字符串操作符百分号(%)来实现。在百分号的左侧放置一个字符串(格式化字符串),右侧放置希望被格式的值。可以使用一个值,如一个字符串或数字,也可以使用多个值的元组或字典。例如:
>>>a = "目前市场上%s的价格为每公斤%d元。" >>>b = ('苹果',20) >>>c= a % b >>>print (c)
运行结果如图4-19所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P85_7911.jpg?sign=1739541815-zsJbIcuQE8IYq7ioChQNaYgagjmCq71H-0-86ce71575c20b88c89d42de423919c3a)
图4-19 运行结果
%左边放置了一个待格式化的字符串,右边放置的是希望格式化的值。格式化的值可以是一个字符串或数字。
上述%s和%d为字符串格式化符号,标记了需要放置转换值的位置。其中,s表示百分号右侧的值会被格式化为字符串,d表示百分号右侧的值会被格式化为整数。
Python中字符串格式化符号如表4-2所示。
表4-2 Python中字符串格式化符号
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-T85_57208.jpg?sign=1739541815-nGMaD1GEos1XpApHzu6G8wEcxL2YGL1I-0-ab16492bcde29598ed7ee9fe85664d28)
这里特别指出,若格式化浮点数,则可以提供所需要的精度,即一个句点加上需要保留的小数点位数。因为格式化字符总是以类型的字符结束,所以精度应该放在类型字符前面。例如:
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P86_57211.jpg?sign=1739541815-zbuhWBIyCAHL12ebTNcOVEKLiOeOLBXb-0-00f81f5c124300c8f8f1fcee75ece5a6)
运行结果如图4-20所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P86_8125.jpg?sign=1739541815-z72VIb0RZA2rCEnHe0FGeLWtMuA3Jy7h-0-3941cc3e49ade33be8bc592e4bbf2cbf)
图4-20 运行结果
如果不指定精度,默认情况下就会显示6位小数。例如:
>>>a = "今天的苹果的售价为每公斤%f元。" >>>b =20.16 >>>c=a % b >>>print (c)
运行结果如图4-21所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P86_8158.jpg?sign=1739541815-Ctlfs8njZHgIKDxXsPo66AnjHvWgDPPx-0-99d9a6726c14509d53738f5e9fa2ab16)
图4-21 运行结果
如果要在格式化字符串中包含百分号,就必须使用%%,这样Python才不会将百分号误认为格式化符号。例如:
>>>a = "今年苹果的销售额比去年提升了:%.2f%%" >>>b =20.16 >>>c=a % b >>>print (c)
运行结果如图4-22所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P87_8202.jpg?sign=1739541815-xmxihnxuby7IzrkkhUiXnX1oDbaA0MYf-0-a6e85098b4a7a417b7847fc14a1bf34c)
图4-22 运行结果
另外,还有一种方式也可以实现上述结果,代码如下:
>>>a = "今年苹果的销售额比去年提升了:%.2f" >>>b =20.16 >>>c=a % b >>>print (c+"%")
运行结果如图4-23所示。
![](https://epubservercos.yuewen.com/5D8A8A/17035792904285406/epubprivate/OEBPS/Images/Figure-P87_8235.jpg?sign=1739541815-CsdtALPkgWWHwsVUsj6uUVJku6ZVBXnw-0-a93ae99937a6ad5400345d030f40a26e)
图4-23 运行结果