在Python中,如何丢弃printf风格格式字符串中的参数?

In Python, how to discard an argument in a printf-style format string?

有时您有机会自定义用于输出某些内容的 printf 样式格式字符串。但是,您无法控制它的使用方式。您的格式字符串 必须 包含与 % 运算符一起使用的值的数量一样多的占位符。否则,您会收到 TypeError:“并非所有参数都在字符串格式化期间转换”。

那么,如何丢弃一个值?从阅读 documentation 来看,显然没有专门针对该值的转换类型。

例如,假设我使用下面定义的库函数,但我对数字 42 不感兴趣,只想打印“Hello world”。

def some_library_function(fmt):
    print(fmt % 42)

使用%.0s.

some_library_function('Hello world%.0s')
# prints: 'Hello world'

说明:.0 指定 precision 为零,对于 strings 被解释为结果中包含的最大字符数。因此传递给 % 的值使用 str() 转换为字符串,然后该字符串被截断为零长度。