如果值为null或None,我正在寻找一种基本上去除额外周期的方法。如果myvar
不存在,则应打印abc.xyz
myvar="def"
print "abc.{0}.xyz".format(myvar)
abc.def.xyz
myvar=""
print "abc.{0}.xyz".format(myvar)
abc..xyz
答案 0 :(得分:3)
如果原始字符串中存在字符,则无论在调用格式之后它都将被包括在内。需要做的是修改输入,使其在预期值出现时包含任何额外的字符。请考虑以下内容(封装在函数中作为演示):
def demo(value):
print("abc.{0}xyz".format(value + '.' if value else ''))
使用示例:
>>> demo('def')
abc.def.xyz
>>> demo('')
abc.xyz
答案 1 :(得分:2)
您可以将期间添加到myvar。
myvar = (myvar + '.') if myvar else myvar
答案 2 :(得分:1)
我会做这样的事情:
>>> myvar=""
>>> print "abc.{0}.xyz".format(myvar) if myvar else "abc.xyz"
abc.xyz
答案 3 :(得分:0)
您可以只用一个替换所有双周期的实例。
myvar=""
output = "abc.{0}.xyz".format(myvar)
print str.replace(output, "..", ".")
abc.xyz