Добрый день! Не получается решить задачу. Неделя как я начал изучать Питон и зашел в тупик

Необходимо решить 2ую часть задачи: 1ая часть:

"По данному натуральному n<=9 выведите лесенку из n-ступенек, i-я ступенька состоит из чисел от 1 до i без пробела";

2ая часть:

"теперь нужно дополнить 1ую часть, чтобы получалась пирамида и каждая ступень состояла из чисел от 1 до i и обратно"

1ую часть решил вот так:

n = int(input())
x = ""
for i in range(1, n + 1):
    x = x + str(i)
    print(x)

На выходе при вводе 3, 1ая часть задачи выполняется корректно:

1
12
123

Теперь требуется, чтобы при вводе 3, исходя из 2ой части задачи, получилось:

  1
 121
12321

Не могу понять логику, учитывая, что по курсу пока изучены только операторы и циклы, ф-ции print, range, str.

Огромная просьба помочь в написании кода, т.к. уже 3й день не могу решить Спасибо заранее!


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

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

Можно даже сам код особо не менять, только print изменить:

n = int(input())
x = ""
for i in range(1, n + 1):
    x = x + str(i)
    print(' ' * (n-i) + x + x[-2::-1])  # <- Изменил эту строку
→ Ссылка
Автор решения: gil9red

Накидал пример:

n = 9

for i in range(1, n + 1):
    left = ''.join(map(str, range(1, i)))
    spaces = ' ' * (n - i)
    print(f'{spaces}{left}{i}{left[::-1]}')

#         1
#        121
#       12321
#      1234321
#     123454321
#    12345654321
#   1234567654321
#  123456787654321
# 12345678987654321
→ Ссылка