2016-06-22 18 views
0
lines = [[str(i * j) for i in xrange(1, 13)] for j in xrange(1, 13)] 

for line in lines: 
    for num in line: 
     if line.index(num): 
      print ' ' * (3 - len(num)) + num, 
     else: 
      print ' ' * (2 - len(num)) + num, 
    print 

我试图理解为什么else声明涉及到第一线 和line.index(num)涉及到剩余的行声明。蟒蛇2.7 line.index如果一个乘法表

+0

你可以编辑帖子并发布格式化的代码,以便我们可以阅读并帮助 – Hani

+1

请清楚解释你所得到的任何问题。 – bhansa

+0

@Bhansa。编辑这样的代码格式并不是一个好主意,尤其是对于基于Python的问题。格式可能是问题的原因。 – SiHa

回答

0

由于您的if语句没有比较line.index(num)与任何事件的返回值,因此返回任何非零值将满足条件并返回值0将导致else语句。

line.index(num)返回0,如果是numline第一项,并因此仅作用于从各linelines的第一个条目。

+0

@hollom谢谢,这就是我想念的。 –