Я новичок в программировании и получил задание:
Вы просите пользователя ввести случайное число, которое выражает размер «елки». Ствол не входит в размер дерева.Пример:
size = 5
(5 - это «входной номер», который ввел пользователь.)Тогда в терминале вы получите это:
Думаю, я почти закончил это, но мне просто нужна дополнительная помощь.
Итак, вот что я сделал до сих пор:
def print_spruce(n):
for i in range(1, n+1, 2):
print (" " *(n-i) + "X"*(2*i-1))
print (" " * (n-1) + "X")
n = int(input("Write the size of the spruce:"))
print_spruce(n+1)
Терминал:
Может ли кто-нибудь дать мне совет / совет / что-нибудь / конкретную помощь, чтобы закончить это.
Заранее спасибо за помощь!





Ваша проблема в том, что вы рисуете ствол в каждом цикле, просто перемещая код рисования ствола из цикла for, он рисуется только один раз в конце, как и должно. Кроме того, вы должны использовать шаги 1, а не шаги 2 в вашем цикле for, и нет смысла использовать n + 1 при вызове print_spruce().
Попробуй это:
def print_spruce(n):
for i in range(1, n+1):
print (" " *(n-i) + "X"*(2*i-1))
print (" " * (n-1) + "X")
n = int(input("Write the size of the spruce:"))
print_spruce(n)
Он лучше моего, но отсутствуют две строчки (одна с 3X, а другая с 7X). prtscr: imgur.com/a/Ku18IwM
@ Felix579 Это связано с тем, что вы используете шаги 2 в цикле for, тогда как на самом деле вам следует использовать шаги 1, также нет необходимости в n + 1.
Я последовал твоему совету и теперь все ок. Спасибо!
@ Felix579 Не стесняйтесь принять мой ответ ради репутации.
Небольшой совет начинающим программистам: нет задачи настолько маленькой, что вы не могли бы поместить ее в отдельный метод. Если бы вы написали
def print_spruce(n): print_branches(n) print_trunk(n), а затем написали реализации дляprint_branchesиprint_trunk, вы бы автоматически устранили одну из ваших ошибок и упростили бы поиск другой.