我想有这个输出:
* * *
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()
我该怎么办?
答案 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
已结束换行。