【问题标题】:print '{' using .format使用 .format 打印“{”
【发布时间】:2020-05-06 12:38:43
【问题描述】:

我想打印字符串:[{X}],而 X 是一个 int。当我使用.format 时,我在打印字符“{”时遇到了麻烦,因为它是格式的一部分。

我尝试使用代码行:

print("[{{}}]".format(X))

我得到了错误:

Single '}' encountered in format string.

有没有办法解决这个错误?

【问题讨论】:

  • 我没有收到任何错误信息;我得到[{}] 作为输出。但是,您仍然需要实际扩展为 X 值的大括号组:print("[{{{}}}]".format(X))

标签: python python-3.x string printing string.format


【解决方案1】:

{{}} 用于打印{}。如果你想要这样的东西{something}。试试这个

X=10
print("[{{{}}}]".format(X))
# [{10}]

【讨论】:

    【解决方案2】:

    虽然我无法重现您声称的错误,但您只生成显示大括号所需的字符,没有替换字段。

    fmt = "["  # the opening bracket
    fmt += "{{"  # the literal {
    fmt += "{}"  # the replacement field
    fmt += "}}"  # the literal }
    fmt += "]"  # the closing bracket
    
    assert fmt == "[{{{}}}]"
    #         not "[{{}}]", as you have
    
    assert fmt.format(3) == "[{3}]"
    

    【讨论】:

      【解决方案3】:

      如果使用format() 不是绝对必要的,那么您可以这样做:

      x = 12
      print("[{%i}]" %x)
      # [{12}]
      

      这比:

      print("[{{{}}}]".format(X))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-13
        • 1970-01-01
        • 2015-09-14
        • 2012-11-15
        • 1970-01-01
        • 1970-01-01
        • 2018-02-10
        相关资源
        最近更新 更多