简体   繁体   English

如何在 Python2 中嵌套格式字符串?

[英]How can I nest format string in Python2?

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

Is something wrong with my code?我的代码有问题吗? Or just can't do it.或者就是做不到。

You should use just one tuple for your formatting:您应该只使用一个元组进行格式化:

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)

If you want it to be more clear, you could do this:如果你想让它更清楚,你可以这样做:

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, ())

or better:或更好:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM