Задать вопрос
  • Какие уроки есть по Photoshop для обзора его возможностей (не приёмов)?

    antdantd, если вы таки собираетесь работать именно в фотошопе, книжка стОит того, чтобы ее как минимум почитать. Хотя бы ~половину книжки. А там насколько хватит терпения.
    Написано
  • Отправка подарка steam?

    CityCat4, по мне - так и есть. Если бы он хотя бы пояснил, чем ему не нравятся http запросы и как он видит решение без них? Голубиной почтой, чтоль?
    Написано
  • Какие уроки есть по Photoshop для обзора его возможностей (не приёмов)?

    А ещё я давным-давно читал и прорабатывал для собственного опыта книжку «Маргулис Дэн. Photoshop LAB Color. Загадка каньона и другие приключения в самом мощном цветовом пространстве»
    Любопытный взгляд на специфичную именно для фотошопа особенность. Рекомендую скачать и ознакомиться.

    (Покупать до ознакомления не надо, сначала полюбопытствуйте, может оно вам и не нужно).
    Написано
  • Как свободно ходить по дереву json в обоих направлениях?

    phaggi
    @phaggi Куратор тега Python
    VMesser, да сделайте уже хоть что-нибудь. Хватит фантазировать, уже давно можно было двинуться дальше.
    Написано
  • Как свободно ходить по дереву json в обоих направлениях?

    phaggi
    @phaggi Куратор тега Python
    VMesser, вам в любом случае необходимо где-то хранить предков. Вариантов уйма. Есть очень веселый вариант сделать одноуровневый словарь с именами-строками, в которых через разделитель все предки указаны. И чтобы получить предка нужного уровня, просто тупо отрезаем сколько надо кусков строки по разделителю и получаем ключ нужного предка. А потомки естественно просто хранятся списком в значении ключа. Дикая избыточность, но работать с этим просто до смеха.
    Написано
  • Как свободно ходить по дереву json в обоих направлениях?

    phaggi
    @phaggi Куратор тега Python
    Даже модный deekpeek родил и с третьего раза отдебажил соответствующий код (не вчитывался, но можно взять за основу)
    кодоподобные галлюцинации deekpeek
    class Node:
        def __init__(self, node_id, parent_id, name, children=None):
            self.id = node_id
            self.parent_id = parent_id
            self.name = name
            self.children = children if children is not None else []
    
        def получить_родителя(self, nodes):
            """Возвращает родительский узел."""
            if self.parent_id is None:
                return None
            for node in nodes:
                if node.id == self.parent_id:
                    return node
            return None
    
        def получить_наследников(self):
            """Возвращает список наследников."""
            return self.children
    
        def проверить_корень_ли_я(self):
            """Проверяет, является ли узел корневым."""
            return self.parent_id is None
    
        def добавить_наследника(self, child_node):
            """Добавляет наследника."""
            self.children.append(child_node)
    
        def удалить_наследника(self, child_id):
            """Удаляет наследника по его id."""
            self.children = [child for child in self.children if child.id != child_id]
    
        def __repr__(self):
            return f"Node(id={self.id}, parent_id={self.parent_id}, name='{self.name}', children={self.children})"
    
    
    # Функция для построения дерева и сбора всех узлов
    def build_tree(json_data):
        """Строит дерево из JSON-данных и возвращает список всех узлов."""
        nodes = {}
    
        def _build_tree(data):
            for item in data:
                node = Node(item['id'], item['parentId'], item['name'])
                nodes[node.id] = node
                if 'children' in item and item['children']:
                    node.children = _build_tree(item['children'])
            return list(nodes.values())
    
        _build_tree(json_data)
        return nodes
    
    
    # Пример JSON-данных
    json_data = [
        {
            "id": 1,
            "parentId": None,
            "name": "Root",
            "children": [
                {
                    "id": 2,
                    "parentId": 1,
                    "name": "Section A",
                    "children": [
                        {
                            "id": 4,
                            "parentId": 2,
                            "name": "Page 1",
                            "children": []
                        },
                        {
                            "id": 5,
                            "parentId": 2,
                            "name": "Page 2",
                            "children": []
                        }
                    ]
                },
                {
                    "id": 3,
                    "parentId": 1,
                    "name": "Section B",
                    "children": [
                        {
                            "id": 6,
                            "parentId": 3,
                            "name": "Page 3",
                            "children": []
                        }
                    ]
                }
            ]
        }
    ]
    
    # Построение дерева и получение всех узлов
    all_nodes = build_tree(json_data)
    
    # Пример работы с узлами
    root_node = all_nodes[1]  # Корневой узел с id = 1
    section_a = all_nodes[2]  # Узел Section A с id = 2
    page_1 = all_nodes[4]     # Узел Page 1 с id = 4
    
    print(root_node.проверить_корень_ли_я())  # True
    print(section_a.проверить_корень_ли_я())  # False
    print(section_a.получить_родителя(all_nodes.values()).name)  # Root
    print(page_1.получить_родителя(all_nodes.values()).name)  # Section A
    
    # Добавление нового наследника
    new_page = Node(7, 2, "Page 4")
    section_a.добавить_наследника(new_page)
    print(section_a.получить_наследников())  # [Node(id=4, ...), Node(id=5, ...), Node(id=7, ...)]
    
    # Удаление наследника
    section_a.удалить_наследника(5)
    print(section_a.получить_наследников())  # [Node(id=4, ...), Node(id=7, ...)]
    Написано
  • Как свободно ходить по дереву json в обоих направлениях?

    phaggi
    @phaggi Куратор тега Python
    Это, конечно, велосипедостроение, но вы же всё равно ленитесь гуглить. А так бы нашли библиотеки готовые для деревьев и всё вот это вот.
    Написано
  • Отправка подарка steam?

    CityCat4, ничего страшного не произошло бы.
    Написано
  • Отправка подарка steam?

    Алексей Уколов, без кода я удаляю тег Python на правах куратора тега. Незачем спамить в тег.
    Проблема не в языке, не в коде, стало быть пока рано его ставить. Достаточно упомянуть. Кстати, упомянуты aiohttp и request, этого более чем достаточно.
    Написано
  • Как исправить ошибку системного сервиса?Ubuntu 24.04 64bit?

    Заворачивайте все логи в тег code.
    Обязательно изложите все попытки исправить и чем закончились.
    Написано
  • Ошибка при нажатии кнопки "Next", (Instagram, Selenium) Как исправить?

    phaggi
    @phaggi Куратор тега Python
    danyayok, дальше убеждаемся, что каждая из них работает правильно.
    Знаете, слона надо кушать по частям.
    Написано
  • Как в телеграмм сделать кнопку оставить заявку, чтобы приходило менеджеру?

    soul323, вы справились самостоятельно - и отлично. Признаться, когда я начинаю писать вопрос, очень часто по ходу написания мысли расставляются прямее и решение находится или по крайней мере становится яснее, где его искать.
    А общие вопросы бесполезны и вам и другим участникам.

    И потом: неужели вы действительно думали, что кто-то будет вашу простыню кода вдумчиво анализировать за вас? Вы сам так часто делали с простыней незнакомого кода другого человека?
    Написано
  • Отправка подарка steam?

    Это не вопрос, а задание.
    Покажите, как пробовали? Что по этому поводу говорит гугль и чем вам не подходит это? Что в документации steam об этом сказано?
    Написано
  • Выбор рабочего ноутбука (разработчик C++)?

    res2001, говорят, синкпады уже не торт. Но это слухи, сам не щупал их со времен когда они были бронемашинами.
    Написано
  • Выбор рабочего ноутбука (разработчик C++)?

    sv11, да, еще нюанс: снизу на корпусе громадная решетка, сквозь которую видны компоненты, и плюс решетка вентилятора. Это пылесборник и при залитии (опрокинули большую чашку не на ноут, а рядом) повышенный риск утопления.
    Написано
  • Выбор рабочего ноутбука (разработчик C++)?

    Да, ещё один нюанс: это 17” ноут. Сходите в магазин и попробуйте взять его за один край и подержать так горизонтально. У меня встречались ноуты, которые при этом под своим весом прогибались, свисали, в буквальном смысле гнулись под своим весом. Не то, чтобы так приходилось эксплуатировать ноут, но это может говорить о не слишком хорошо продуманной конструкции. В поездках ноут должен быть крепостью.

    Так-то по фоткам ноут толстенький, наверное гнуться не должен.
    Написано
  • Выбор рабочего ноутбука (разработчик C++)?

    У i9 кеш 2уровня почти в 2 раза больше (2 мб против 1.2 мб на ядро). Плюс энергоэффективность чуть получше, хотя формально заявлены одинаковые TDP, плюс на 10% пошустрее. Плюс SSD больше.
    Если выбираем между этих двух, я бы смотрел в сторону ноута на i9 с дальнейшим наращиванием ОЗУ до предела.

    Но! Всего 2 часа на батарее. На мой взгляд это архимало. Будьте готовы жить около розетки.
    Очень маркий корпус.
    Тугие петли дисплея.
    Возможность зарядки по type-c не больше 30ватт, и если вдруг придется использовать такое питание, на ней не удастся заряжаться и работать одновременно.
    Написано
  • Где дешевле всего купить 10 Тб облачного места?

    Сергей, понимаете… тут есть свои правила и свой регламент. И там есть множество пунктов, которые именно требуют, чтобы вы сначала погуглили, потом максимально конкретизировали вопрос; также есть пункт, что это вопрос, а не опрос, что значит - это не место для сбора мнений, статистики и т.п.
    Написано
  • Где дешевле всего купить 10 Тб облачного места?

    Сергей, именно об этом я и говорю. Ответы разные и один дешевле другого, а значит можно найти ещё дешевле. Условия очень разные - к примеру, где-то могут быть сильно разные цены на закачку, хранение и выкачку.

    Вопрос был бы корректным так: сейчас я плачу 100 килопопугаев/наносекунду за хранение, хочу платить меньше 80 при тех же условиях. Стоимость закачки и выкачки не играет роли.

    Тогда есть достаточно четкий критерий.

    А без этого вопрос мало полезен, а в ответы можно навалить кучу спама «у нас самые маленькие килопопугаи».

    …ну и кроме того: фактически вопрос это «погуглите за меня».
    Написано