python数组元素输出问题

题目:
找出1000以内的所有完数和他们的因子
程序设计:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3,则6就是完数。请编程找出1000以内的所有完数和他们的因子。
输入用例:

输出用例:
6
1 2 3
28
1 2 4 7 14
496
1 2 4 8 16 31 62 124 248
问题就是如何将数组元素同一行打印出来,且每一个元素占3个位置输出。
以下代码输出问题在倒数第二行

img

img

print(f'{k[i]:<3}', end = ' ')

你的空格是英文空格吗?即那句应该是

    print( k[i],end=' ')

估计你的end后面是中文全角空格,或者是多写了空格。

img



for i in range(2,1001):
    k=[j for j  in range(1,i) if i%j==0]
    if sum(k)!=i:
        continue
    print(i)
    for t in range(len(k)-1):
        print(k[t],end=' ')
    print(k[-1])