如何在Python2中嵌套格式字符串? formatter=“%r%r%r” 打印格式化程序%(格式化程序,格式化程序,格式化程序,格式化程序)%((1,2,3,4),(1,2,3,4),(1,2,3,4),(1,2,3,4),(1,2,3,4)) 回溯(最近一次呼叫最后一次): 文件“ex8.py”,第2行,在 打印格式化程序%(格式化程序,格式化程序,格式化程序,格式化程序)%((1,2,3,4),(1,2,3,4),(1,2,3,4),(1,2,3,4),(1,2,3,4)) TypeError:格式字符串的参数不足

如何在Python2中嵌套格式字符串? formatter=“%r%r%r” 打印格式化程序%(格式化程序,格式化程序,格式化程序,格式化程序)%((1,2,3,4),(1,2,3,4),(1,2,3,4),(1,2,3,4),(1,2,3,4)) 回溯(最近一次呼叫最后一次): 文件“ex8.py”,第2行,在 打印格式化程序%(格式化程序,格式化程序,格式化程序,格式化程序)%((1,2,3,4),(1,2,3,4),(1,2,3,4),(1,2,3,4),(1,2,3,4)) TypeError:格式字符串的参数不足,python,format,Python,Format,我的代码有问题吗?或者就是做不到。您应该只使用一个元组进行格式化: formatter = "%r %r %r %r" print formatter % (formatter, formatter, formatter, formatter) % ((1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4)) Traceback (most recent call last): File "ex8.py", line 2, in <

我的代码有问题吗?或者就是做不到。

您应该只使用一个元组进行格式化:

formatter = "%r %r %r %r"
print formatter % (formatter, formatter, formatter, formatter) % ((1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4))


Traceback (most recent call last):
  File "ex8.py", line 2, in <module>
    print formatter % (formatter, formatter, formatter, formatter) % ((1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4))
TypeError: not enough arguments for format string
如果您想让它更清晰,可以这样做:

formatter = "%r %r %r %r"
print formatter % (formatter, formatter, formatter, formatter) % (1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4)
或者更好:

formatter = "%r %r %r %r"
tuples = ((1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4))
print formatter % (formatter, formatter, formatter, formatter) % sum(tuples, ())
formatter = "%r %r %r %r"
tuples = (1, 2, 3, 4) * 4
print formatter % ((formatter,) * 4) % tuples