我不确定为什么打印的最后一行是缩进的,任何帮助都会非常感激。
def Task9():
list1 = []
n = int(input("Enter width of latin square: "))
for x in range(1,n):
list1.append(x)
for x in range(n):
print(" ".join( str(e)for e in list1[x:]) ," ".join( str(e) for e in list1[:x]))
Task9()
答案 0 :(得分:0)
最后一行有一个额外的空间,原因相同,每条行都有一个额外的空间。明显加入以查看它,例如使用“X”而不是“”:
1X2X3X4X5X6
2X3X4X5X6 1
3X4X5X6 1X2
4X5X6 1X2X3
5X6 1X2X3X4
6 1X2X3X4X5
1X2X3X4X5X6
答案 1 :(得分:0)
这很有趣,但在打印多个变量/字符串时,您似乎偶然发现了自动插入空间。结合元组打印问题,如果使用Python版本2.x.
('hi', 'there')
what now?
nothing
在我的Python v.2.7.10中输出:
from __future__ import print_function
注意第一个包括parens,并显示这实际上是两个字符串的元组,而不是打印函数?使用print('{}{}'.format(" ".join(... [x:]), " ".join(... [:x])))
我们将禁止没有parens的版本,但仍会在元素之间插入空格。
要删除可以使用for x in range(n):
print(" ".join(str(e) for e in (list1[x:] + list1[:x])))
的空间。但这会消除两部分之间的通缉空间。将其插入格式字符串将重新引入最后一行中不需要的空格。
更好的选择是在连接和打印之前总结两个切片:
import itertools
for x in range(n):
print(" ".join(str(e) for e in itertools.chain(list1[x:], list1[:x])))
使用itertools而不是对切片求和的另一个版本:
{{1}}
这两个版本都产生预期的输出,我认为这是一个使用偏好的问题。然而,第一个不需要任何导入,并且非常简洁。