Python,使用for循环打印两列数字

时间:2014-05-03 23:38:12

标签: python loops for-loop

我需要一些非常基本的Python 3.3帮助。我正在尝试使用for循环更好地理解格式化,我想简单地在两列中打印1-20中的奇数。

这是我尝试过的:

for col1 in range(1,10,2):
    for col2 in range(11,20,2):
        print(col1,'\t',col2)

出于某种原因,我的输出非常奇怪。左列有1-10的奇数,但每个数字在进入下一个数字之前列出五次

1   11
1   13
1   15
1   17
1   19
3   11
3   13
3   15
3   17
3   19
etc..

我想要的是:

1   11
3   13
5   15
7   17
9   19

2 个答案:

答案 0 :(得分:4)

您应该使用zip

for i,j in zip(range(1,10,2), range(11,20,2)):
    print('{}\t{}'.format(i,j))

[OUTPUT]
1   11
3   13
5   15
7   17
9   19

当您使用嵌套循环时,问题是您要在第一列中打印每个编号的第二列,这不是您想要的。相反,您希望同时迭代它们。这就是zip派上用场的地方。

答案 1 :(得分:1)

这里不需要第二个for循环或zip。相反,你需要的只是:

>>> for n in range(1, 10, 2):
...     print(n, '\t', n + 10)
...
1        11
3        13
5        15
7        17
9        19
>>>

这是有效的,因为第二列中的数字只是第一列加上10中的数字。

相关问题