例如,如果我有一个函数并且说输入是数字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
答案 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
%