我有两个要打印的参数
print('{0:25}${2:>5.2f}'.format('object', 20))
但是他们给出以下响应:
Traceback (most recent call last):
IndexError: tuple index out of range
但是当我将代码更改为以下代码时,我得到了期望的输出:
print('{0:25}${2:>5.2f}'.format('object', 20, 20))
我不明白为什么,因为我只有两组{}。谢谢
答案 0 :(得分:1)
您的问题是$符号后的2索引:
print('{0:25}${2:>5.2f}'.format('object', 20, 20))
在python中的字符串上使用.format时,{number:}
处的数字是您想要的参数的索引。
例如以下内容:
"hello there {1:} i want you to give me {0:} dollars".format(2,"Tom")
将在以下输出中重新输出:
'hello there Tom i want you to give me 2 dollars'
这里有一个简单的示例: https://www.programiz.com/python-programming/methods/string/format
所以总结一下,为了使代码正常工作,请使用:
print('{0:25}${1:>5.2f}'.format('object', 20))
答案 1 :(得分:0)
应该是
>>> print('{0:25}${1:>5.2f}'.format('object', 20))
object $20.00
请注意将占位符从2
更改为1
print('{0:25}${1:>5.2f}'.format('object', 20))
### ^
添加第三个参数(第二个20)时,占位符2
会找到一个值
>>> print('{0:25}${2:>5.2f}'.format('object', 20, 20))
object $20.00
但是如果没有第三个参数,则会引发index out of range
异常。