如何使用嵌套循环在Python中打印数字矩阵?

时间:2014-10-16 16:29:52

标签: python

例如,如果我有一个函数并且说输入是数字n(即5)

我想要一个5x5矩阵,如:

1 2 3 4 5
2       10
3       15
4       20
5 10 15 20 25

如果我只想要最外面的正方形或最内部的那么,我怎么写这个?

(这是for python)

我尝试了什么:

def f4(n): 
    for i in range(1, n): 
        for j in range(1, n):
            print i*j, 
        print

2 个答案:

答案 0 :(得分:0)

要控制字符串中的间距,请尝试str.format。例如:

>>> print '{:2} {:2} {:2} {:2} {:2}\n{:2} {:2} {:2} {:2} {:2}'.format(1, 2, 3, 4, 5, 10, 20, 30, 40, 50)
 1  2  3  4  5
10 20 30 40 50

另一个提示:看起来你有两种类型的行 - 顶部/底部行和中间行。顶部/底部行具有与中间行不同的格式,这些行本身相似。

答案 1 :(得分:0)

我的解决方案

% cat squar.py
def squarpy(n, length=5):
    fmt = "%%%dd"%(length)
    sp = " "*length
    square = " ".join([fmt%(i+1) for i in range(n)])
    for j in range(2,n):
        row = " ".join([fmt%(i*j+j) if i==0 or i==n-1 else sp for i in range(n)])
        square = square +"\n" + row
    tail = " ".join([fmt%(i*n+n) for i in range(n)])
    square = square + "\n" + tail
    return square

print squarpy(3)
print
print squarpy(5)
% python2 squar.py
    1     2     3
    2           6
    3     6     9

    1     2     3     4     5
    2                      10
    3                      15
    4                      20
    5    10    15    20    25
%