菱形输出带数字和输入问题

img

img


请问这个怎么操作呢 我没有思路 python2.7
以及怎么以7 5 带空格的输入怎么写


a = input().split(" ")
a = list(map(lambda x: int(x),a))
m = a[0]
n = a[1]
for i in range(1,n+1):
    print(" "*(10-i*2),end = "")
    for j in range(i*2-1):
        print((m+j)%10,end = "")
        print(" ",end = "")
    print()
for i in range(n,0,-1):
    print(" "*(10-i*2),end = "")
    for j in range(i*2-1):
        print((m+j)%10,end = "")
        print(" ",end = "")
    print()

必须用python2.7吗,先给个python3的

m,n = map(int, input().split())
lst = [i if i<10 else i-10 for i in range(m,m+10)]
for i in range(n*2):
    if i>n:
        l = n*4-2*i-1
    else:
        l = i*2-1
    print(' '*(n*2-l),end='')
    for j in range(l):
        print('%2d'%lst[j], end='')
    print()

img

a,b=[int(x) in x in input().split()]
for i in range(b):
    print(' '*(b-i-1)*2,end='')
    for j in range(i*2+1):
        print((a+j)%10,end=' ')
    print()
for i in range(b-2,-1,-1):
    print(' '*(b-i-1)*2,end='')
    for j in range(i*2+1):
        print((a+j)%10,end=' ')
    print()

N 只能是奇数,否则菱形对不齐的,题目不严谨没作说明

def diamond(M,N):
    line = [str(i%10) for i in range(M,11+N)]
    for i in [*range(1,len(line)+1,2),*range(len(line)-2,-1,-2)]:
        print(f"{' '.join(line[:i]):^{len(line)*2-1}}")

2.x 版本 print去掉括号,还有f'-string支不支持?没试过