Python中的嵌套循环不起作用

时间:2016-09-27 16:03:46

标签: python

我想有这个输出:

* * * 
2 2 2 
4 4 4  
6 6 6 
8 8 8

我无法理解,而且我尝试了很多方法,但我的代码似乎无法运作。这是我目前的代码:

for row in range(3):
    print ("*", end = " ")
    print ()
    for col in range(2,9,2):
        print (row, end = " ")
        print ()
print()

我该怎么办?

3 个答案:

答案 0 :(得分:2)

我不知道你在打印陈述中使用end的原因。请记住,您必须逐行打印。没有办法逐列打印。

print('* * *')
for i in range(2, 9, 2):
    print('{0} {0} {0}'.format(i))

有关{0}的进一步说明,请查找字符串的format方法:https://docs.python.org/2/library/string.html#format-string-syntax

答案 1 :(得分:0)

print('* * *') 
for col in range(2,9,2):
    print (*[col]*3, sep=' ')

更清楚。

>>> a = 2
>>> [a]
[2]
>>> [a]*3
[2, 2, 2]
>>> print(*[a]*3, sep=' ')  # equal to print(a, a, a, sep=' ')
2 2 2

答案 2 :(得分:0)

首先,您只有一行包含* * *,可以打印在任何循环之外的最顶部:

print('* * *')

接下来,您需要以2的步骤从值9(包括)和2(不包括)开始循环:

for col in range(2,9,2):

您不需要在此处使用任何end关键字,因此只需多次打印该行即可:

print('{0} {0} {0}'.format(i))

所以最后一段代码如下:

print('* * *')
for row in range(2,9,2):
    print('{0} {0} {0}'.format(row))

无论如何,您无需添加其他print()print已结束换行。