Вводится целое число N (1≤N≤9), а выводятся строки с числами, которые образуют определенный «рисунок»

Вводится целое число N (1≤N≤9), а выводятся строки с числами, которые образуют определенный «рисунок» Нашел код в интернете и немного адаптировал под свой вариант, только нужно что то решить с дельтой, она очень разная должна быть для разных N для идеальной формы рисунка, и при этом для Н=5 это 8, а для н=9 это 16. 5/8!=9/16. Но и может код можно чуть проще или логичнее сделать, потому что делал методом тыка и появлялось только локальное понимание ситуации

`

n=9
i = 1
delta = 16
while i <= n:
    j = 1
    print(delta*" ",end="")
    while j <= i:
        print((j-1-i)*-1, end=" ")
        j += 1
    print()
    i += 1

delta = -2
i = n
while i >= 0:
    j = 1
    delta += 2
    print(delta*" ",end="")
    while j <= i:
        print(j, end=" ")
        j += 1
    print()
    i -= 1 

` введите сюда описание изображения


Ответы (1 шт):

Автор решения: MBo

ОК, вижу, исправились, теперь с кодом.

delta должно определяться из n - это просто

delta = 2 * (n - 1)

Числа в первом цикле проще записать так:

print(i+1-j, end=" ")

Поскольку пределы циклов известны, for лучше подходит, чем while

n=5
delta = 2 * n - 2
for i in range(1,n+1):
    print(delta*" ",end="")
    for j in range(1,i+1):
        print(i-j+1, end=" ")
    print()

for i in range(n):
    print(i*2*" ",end="")
    for j in range(n-i):
        print(j+1, end=" ")
    print()
→ Ссылка