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)
与剩余的行相关。
答案 0 :(得分:0)
由于您的if
语句未将line.index(num)
的返回值与任何内容进行比较,因此返回任何非零值将满足条件并返回值0将导致else
语句
line.index(num)
是num
中的第一个条目,那么 line
会返回0,因此只会对line
中每个lines
的第一个条目执行操作。