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



我需要一些非常基本的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

您应该使用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派上用场的地方。

这里不需要第二个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。

最新更新