Python:使用变量格式化多行字符串

标签 python string formatting

我正在编写一个 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 初学者,如果这是一个愚蠢的问题,我们深表歉意。)

最佳答案

你想说

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

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

关于Python:使用变量格式化多行字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9911261/

相关文章:

python - 如何返回排序列表的索引?

string - 戈朗 : bitwise operation on very long binary bit string representation

java - 设置足球的持续时间(足球)

r - 如何将具有混合日期格式的变量转换为一种格式?

arrays - Bash 数组 : appending and prepending to each element in array

python - 如何通过查找内部 div 的元素来单击外部 div

python - PySpark : Optimize read/load from Delta using selected columns or partitions

python - 如何使用 Python 3.x ast 模块解析 Python 2.x?

c - 遍历c中的字符串数组

java - 如何在Java中将字符串散列为具有范围的整数