Python 使用(x,x*x,x*x*x)打印格式良好的表格

Python 使用(x,x*x,x*x*x)打印格式良好的表格,python,format,Python,Format,我运行了下面的代码,得到了语法错误。我不知道怎么了 for x in range(1,11): print '{0:2d} {1:3d}{2:4d}'.format(x), (x*x), (x*x*x) 您需要格式的右括号和右括号: for x in range(1,11): print '{0:2d} {1:3d}{2:4d}'.format(x, x*x, x*x*x) 你的代码 print '{0:2d} {1:3d}{2:4d}'.format(x), (x*x),

我运行了下面的代码,得到了语法错误。我不知道怎么了

for x in range(1,11):
    print '{0:2d} {1:3d}{2:4d}'.format(x), (x*x), (x*x*x)

您需要
格式的右括号和右括号

for x in range(1,11):
    print '{0:2d} {1:3d}{2:4d}'.format(x, x*x, x*x*x)
你的代码

print '{0:2d} {1:3d}{2:4d}'.format(x), (x*x), (x*x*x)
实际上相当于:

print ('{0:2d} {1:3d}{2:4d}'.format(x)), (x*x), (x*x*x)
因此,您只将一个值传递给格式字符串(即仅
x
),而格式字符串预期为3

>>> '{}{}{}'.format(1)

Traceback (most recent call last):
  File "<pyshell#75>", line 1, in <module>
    '{}{}{}'.format(1)
IndexError: tuple index out of range

它必须是索引器:

>>> for x in range(1,11):
...     print '{0:2d} {1:3d}{2:4d}'.format(x), (x*x), (x*x*x)
...
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
IndexError: tuple index out of range
如果参数传递不正确,请尝试(如果print是函数):


这就是你想要的:

print '{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x)

format()需要3个值,与格式化字符串的方式相同

我不需要。我得到了一个
索引器
。如果您在这里真的得到了一个
语法错误
,那么您必须使用Python 3,并且
print()
是一个函数。也就是说,除了
索引器
之外,您的代码还将引发。建议如下:
>>> from __future__ import print_function
>>> for x in range(1,11):
...     print '{0:2d} {1:3d}{2:4d}'.format(x, x*x, x*x*x)
  File "<stdin>", line 2
    print '{0:2d} {1:3d}{2:4d}'.format(x, x*x, x*x*x)
                              ^
SyntaxError: invalid syntax
>>> for x in range(1,11):
...     print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))
...
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000
print '{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x)