5.4 格式化字符串

微视频

Python语言支持格式化字符串的输出。字符串格式化使用字符串操作符百分号(%)来实现。在百分号的左侧放置一个字符串(格式化字符串),右侧放置希望被格式化的值。可以使用一个值,如一个字符串或数字,也可以使用多个值的元组或字典。例如:

    >>>x = "我这次%s 的考试成绩为%d 分。"
    >>>y = ('数学',98)
    >>>z= x % y
    >>>print (z)
    我这次数学的考试成绩为98分。

%左边放置了一个待格式化的字符串,右边放置的是希望格式化的值。格式化的值可以是一个字符串或数字。

上述%s和%d为字符串格式化符号,标记了需要放置转换值的位置。其中,s表示百分号右侧的值会被格式化为字符串,d表示百分号右侧的值会被格式化为整数。

Python语言中字符串格式化符号如表5-4所示。

表5-4 Python语言中字符串格式化符号

这里特别指出,若格式化浮点数,则可以提供所需要的精度,即一个句点加上需要保留的小数点位数。因为格式化字符总是以类型的字符结束,所以精度应该放在类型字符前面。例如:

    >>> x = "我这次数学的考试成绩为%.1f 分。"
    >>> y =98.5
    >>> z= x % y
    >>> print (z)
    我这次数学的考试成绩为98.5分。

如果不指定精度,默认情况下就会显示6位小数。例如:

    >>> x = "我这次数学的考试成绩为%f 分。"
    >>> y =98.5
    >>> z= x % y
    >>> print (z)
    我这次数学的考试成绩为98.500000分。

如果要在格式化字符串中包含百分号,就必须使用%%,这样Python才不会将百分号误认为格式化符号。例如:

    >>>x = "今年销售额比去年提升了:%.1f%%"
    >>>y =18.6
    >>>z=x % y
    >>>print (z)
    今年销售额比去年提升了:18.6%