如何用字符串格式省略最后一个位置参数?
请考虑以下问题。有时我对传递最后一个位置参数不感兴趣。由于最后一个参数值不存在。这是一个可选的论点。
message = """ {name} {age}"""
message.format(name='sameer') # This will give me error
答案 0 :(得分:3)
你无法避免它,但是一个空字符串可以做到:
message = """ {name} {age}"""
message.format(name='sameer', age='')
如果你想得到花哨,你可以编写用空字符串替换所有未给定的关键字参数的函数:
from string import Formatter
def my_format(msg, **kwargs):
defaults = {x[1]: '' for x in Formatter().parse(msg)}
defaults.update(kwargs)
return msg.format(**defaults)
message = """Person: {name} {age}"""
print(my_format(message, name='sameer', age=30))
print(my_format(message, name='sameer'))
print(my_format(message))
输出:
Person: sameer 30
Person: sameer
Person:
答案 1 :(得分:0)
如果你想把它弄空,那么MikeMüller的回答是正确的。
如果你想把插槽留在字符串中,只需用双层替换单个括号:
>>> message = """ {name} {{age}}"""
>>> message.format(name='sameer')
' sameer {age}'
然后您可以稍后填写该广告位。