代码之家  ›  专栏  ›  技术社区  ›  sdot257

如何使用Python格式处理空值

  •  2
  • sdot257  · 技术社区  · 8 年前

    我正在寻找一种方法,如果值为null或无,则从本质上去掉额外的句点。如果 myvar 不存在,应该打印出来 abc.xyz

    myvar="def"
    print "abc.{0}.xyz".format(myvar)
    abc.def.xyz
    
    myvar=""
    print "abc.{0}.xyz".format(myvar)
    abc..xyz
    
    4 回复  |  直到 8 年前
        1
  •  3
  •   metatoaster    8 年前

    如果原始字符串中存在一个字符,则无论调用该字符的格式后如何,都将包含该字符。需要做的是修改输入,使其在出现预期值时包含任何额外字符。考虑以下内容(封装在函数中作为演示):

    def demo(value):
        print("abc.{0}xyz".format(value + '.' if value else ''))
    

    示例用法:

    >>> demo('def')
    abc.def.xyz
    >>> demo('')
    abc.xyz
    
        2
  •  2
  •   Sam    8 年前

    您可以将期间添加到myvar。

    myvar = (myvar + '.') if myvar else myvar
    
        3
  •  1
  •   wohe1    8 年前

    我会这样做:

    >>> myvar=""
    >>> print "abc.{0}.xyz".format(myvar) if myvar else "abc.xyz"
    abc.xyz
    
        4
  •  0
  •   dfundako    8 年前

    您可以将所有双句点实例替换为一个句点。

    myvar=""
    output = "abc.{0}.xyz".format(myvar)
    print str.replace(output, "..", ".")
    abc.xyz