【问题标题】:Python: format multitline strings with variablesPython:用变量格式化多行字符串
【发布时间】:2012-03-28 15:52:59
【问题描述】:

我正在编写一个 Python 脚本,其中包含一个包含大型多行字符串的部分,该字符串还需要扩展变量。我习惯在 Python 2.6 或 Python 3 中使用以下方式:

message = """
          Hello, {foo}
          Sincerely, {bar}
          """
print (message.format(foo = "John", bar = "Doe"))

但是,工作服务器运行的是旧版本的 Python (2.3.4),它不支持 string.format。在旧的 Python 版本中有什么方法可以做到这一点?您可以使用 % 运算符来做到这一点吗?我试过了,但它似乎没有用:

message = """
          Hello, %(foo)
          Sincerely, %(bar)
          """ % {'foo': 'John', 'bar': "Doe"}

我可以在不使用多行字符串的情况下做到这一点,但是我需要格式化的消息非常大,有很多变量。在 Python 2.3.4 中是否有一种简单的方法可以做到这一点? (仍然是 Python 初学者,如果这是一个愚蠢的问题,请见谅。)

【问题讨论】:

    标签: python string formatting


    【解决方案1】:

    你想说

    message = """
              Hello, %(foo)s
              Sincerely, %(bar)s
              """ % {'foo': 'John', 'bar': "Doe"}
    

    注意末尾的s,这使得通用格式"%(keyname)s" % {"keyname": "value"}

    【讨论】:

    • 明白了,感谢你和马特。这就是我所缺少的,现在效果很好。
    • 连接变量怎么样?
    • @AllDani:我不确定你在问什么。如果您的问题是,“我如何格式化一个包含 2 个并排插值的变量的字符串,那么答案是执行 'Hello %(foo)s%(bar)s' % {'foo': 'x', 'bar': 'y'} 之类的操作。(或者您可以使用新的 str.format 方法,这不是OP 的选项,因为它们使用的是旧版本的 Python。)
    • 多行变量集。
    【解决方案2】:

    试试这个

    message = """
              Hello, %(foo)s
              Sincerely, %(bar)s
              """ % {'foo': "John", 'bar': "Doe"}
    

    【讨论】:

      【解决方案3】:

      基于字典的字符串格式化

      message = """
                Hello, %(foo)s
                Sincerely, %(bar)s
                """ % { "foo":"john","bar":"doe"}
      

      【讨论】:

        【解决方案4】:

        你有一个错字:

        message = """
                  Hello, %(foo)
                  Sincerely, %(bar)
                  """ % {'foo': 'John", 'bar': "Doe"}
                                ^
        

        用双引号替换单引号,它应该可以正常运行。

        【讨论】:

        • 哎呀,谢谢。我是在电脑上直接输入的,只是发错了。让我编辑一下。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-22
        • 1970-01-01
        • 1970-01-01
        • 2018-05-20
        • 1970-01-01
        相关资源
        最近更新 更多