在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 为零,对于 s
trings 被解释为结果中包含的最大字符数。因此传递给 %
的值使用 str()
转换为字符串,然后该字符串被截断为零长度。
有时您有机会自定义用于输出某些内容的 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 为零,对于 s
trings 被解释为结果中包含的最大字符数。因此传递给 %
的值使用 str()
转换为字符串,然后该字符串被截断为零长度。