打印前面有数字的行

时间:2013-11-24 13:50:35

标签: python for-loop printing

我目前正在尝试打印一个对象列表,其中每个新行都在其前面有一个数字。就像第一行的前面有1个,第二行有2个等等。 当我不使用每行的数字时,打印功能正常工作。

我试着写下来:

n=0
for x in List:
   print("\n".join(str(n,x))
   n+=1

本例中的List包含一堆对象,都有4个属性,self.name,self.randomint,self.randomint2,self.randomint3

但我这样做的语法无效,谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

括号在以下行中不平衡:

   print("\n".join(str(n,x))

将其替换为:

   print("\n".join(str(n,x)))
   #                        ^

另一个问题:str只接受一个参数。

>>> str(1, 2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: str() takes at most 1 argument (2 given)
>>> str(1)
'1'

完整的示例代码:

n=0
for x in List:
    print(n, x)
    n += 1

使用enumerate

for n, x in enumerate(List, 1):
    print(n, x)

答案 1 :(得分:1)

你错过了一个右括号:

print("\n".join(str(n,x))
#                --------^

但这仍然不是正确的陈述,因为str()采用带有可选编码的一个字符串参数。

使用enumerate()添加计数会更容易,并将两个参数传递给print()

for n, x in enumerate(Line):
    print(n, x)