Задача на Python. Ёлочка. (функции)
Ёлочка
Маленький Петя делает новогоднюю открытку. Для этого ему надо нарисовать ёлочку. Однако Пете сложно самому справиться с этой задачей, помогите ему в этом.
Ёлочка состоит из n уровней. Первый (верхний) уровень состоит из двух строк, второй — из трех, ..n-й — из n+1 строк. Все строки заполнены одинаковым символом ∗, при этом длины строк составляют 1,2. i+1 на уровне i.
Например, 2-ой уровень ёлочки выглядит так:
Необходимо по введённому натуральному числу n нарисовать ёлочку из n уровней.
Необходимо оформить решение в виде функции для рисования ёлочки tree(n), которая будет вызывать функцию makeLevel(i) для рисования каждого уровня ёлочки при различных значениях i.
def tree(n):
#сюда нужно вставить код
n = int(input())
three (n)
Python 3, командная строка, рисуем елку
Как лучше выполнить эту задачу? вот что у меня получилось, как можно сделать по другому?
from random import randint as r STAR = '*' TOY = 'o' height = int(input('\nEnter the number of height [2-20]: ')) width = 2 * height - 1 for i in range(1, width + 1, 2): tree = i * STAR tree_1 = tree.center(width, '_') if i == 7 or i == 9 or i == 19 or i == 21 or i == 31: i -= 1 elif i == 11 or i == 23 or i == 33 or i == 35: i += 1 if (i - 3) % 3 == 0: start = (width - i) // 2 end = start + i my_list = list(tree_1) my_list[r(start, end)] = TOY tree_1 = ''.join(my_list) print(tree_1)
Отслеживать
49.3k 17 17 золотых знаков 57 57 серебряных знаков 101 101 бронзовый знак
задан 4 фев 2019 в 17:15
19 1 1 золотой знак 2 2 серебряных знака 5 5 бронзовых знаков
5 фев 2019 в 10:27
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Ваш код у меня вообще не отработал. Вот, Вам, мой пример генератора ёлки:
SPACE = '_' STRAR = '*' if __name__ == "__main__": rows = int(input()) spaces = rows-1 stars = 2 for i in range(rows): print( (SPACE*spaces) + (STRAR*stars) + (SPACE*spaces) ) stars += 2 spaces -= 1
7 ______**______ _____****_____ ____******____ ___********___ __**********__ _************_ **************
А вот с игрушками:
from random import randint SPACE = '_' STRAR = '*' def toy(line): tmp = '' index = randint(0, len(line)-1) for i in range(len(line)): tmp += line[i] if i != index else 'o' return tmp if __name__ == "__main__": rows = int(input()) spaces = rows-1 stars = 2 for i in range(rows): print( (SPACE*spaces) + ((STRAR*stars) if (i % 2) != 0 else toy(STRAR*stars)) + (SPACE*spaces) ) stars += 2 spaces -= 1
7 ______o*______ _____****_____ ____***o**____ ___********___ __*****o****__ _************_ ************o*
Если нужен такой вывод:
10 _________o_________ ________***________ _______***o*_______ ______*******______ _____**o******_____ ____***********____ ___*****o*******___ __***************__ _**********o******_ *******************
10 _________*_________ ________o**________ _______*****_______ ______*o*****______ _____*********_____ ____o**********____ ___*************___ __*************o*__ _*****************_
То: [26] ((STRAR*stars) if (i % 2) == 0 else toy(STRAR*stars)) +
Python-сообщество
- Начало
- » Python для новичков
- » Кривая елочка в Python
#1 Ноя. 28, 2022 14:24:52
MaksimVladimirov Зарегистрирован: 2022-11-28 Сообщения: 3 Репутация: 0 Профиль Отправить e-mail
Кривая елочка в Python
Здравствуйте! В колледже мне задали сделать новогоднею елочку с N этажами. Я сделал все что было в моих силах. Вопрос заключается в том как ее сделать ровной, у меня она как пизанская башня. Буду очень Вам благодарен! Жду ответа)
n = int(input("dd: ")) k = int(input("dd2: ")) p = 1 def christmas_tree(n): p = 1 for x in range(k + 1): for i in range(p, n + 1): print(" "*(n+n-i), "*"*(2*i+1)) p = p+2 n = n+1 christmas_tree(n)
Прикреплённый файлы:
pythonProject5 – mon.py 28.11.2022 14_03_56.png (52,6 KБ)
#2 Ноя. 28, 2022 16:14:37
Rodegast От: Пятигорск Зарегистрирован: 2007-12-28 Сообщения: 2686 Репутация: 182 Профиль Отправить e-mail
Кривая елочка в Python
dd = 10 dd2 = 3 def vetka(i): l = (dd*2-i)//2 return ' '*l + '*'*i + ' '*l def konus(): return "\n".join( vetka(x) for x in range(dd*2) if x%2 ) print("\n".join( konus() for x in range(dd2)))
С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.
#3 Ноя. 28, 2022 16:25:21
MaksimVladimirov Зарегистрирован: 2022-11-28 Сообщения: 3 Репутация: 0 Профиль Отправить e-mail
Кривая елочка в Python
Cпасибо, но Ваш код без соединений, получилось так что просто про дублировались треугольники, а надо чтоб был треугольник в треугольнике и сверху в низ она расширялась. У меня все это сделано, фотографию прикреплял, но она кривая! Как сделать ее ровной?
#4 Ноя. 28, 2022 16:35:39
Rodegast От: Пятигорск Зарегистрирован: 2007-12-28 Сообщения: 2686 Репутация: 182 Профиль Отправить e-mail
Кривая елочка в Python
print("\n".join( konus()[x*dd*2:] for x in range(dd2)))
С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.
Как сделать новогоднюю ёлку на Python? | Как поменять написанный в консоли текст?
В этом видео я покажу вам, что может произойти, если вы попытаетесь призвать Херобрина из черепашьего яйца. Ну и ещё мы поговорим о том, как с помощью питона (python) можно красить и менять написанный в консоли текст, а на основе этих навыков сделаем новогоднюю ёлочку, которая будет приколдесненько моргать) Приятного просмотра) Код от ёлочки ищи в нашем дискордике: https://discord.gg/Fkzy9TzNw5 Видео про фотошопчик: https://youtube.com/playlist?list=PLITs_hlC1HpS9oYKt5KKUP5Ngn9kU3a9c Видео про майнкрафтик: https://youtube.com/playlist?list=PLITs_hlC1HpSCY5QThciJdOV3BTDKr0Or Музычка из интро и аутро (prod. by waytoolost): https://youtu.be/_zOzguGFTBA
Показать больше
Войдите , чтобы оставлять комментарии