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

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Недавно дочка прошла курс для школьников по растровой графике от «ЦТПО РГУ им.А.Н. Косыгина». Не знаю, есть ли аналогичный курс для не школьников, но поищите или спросите у них. Дочка довольна. Что касается именно Фотошоп, основные его механики там разбирали.
    Ответ написан
    3 комментария
  • Как свободно ходить по дереву json в обоих направлениях?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Не ленитесь гуглить. Вот с налету нашел вам пример реализации нужного вам json
    spoiler
    [
      {
        "id": 1,
        "parentId": null,
        "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": []
              }
            ]
          }
        ]
      }
    ]

    Корректируйте под свою задачу. Пишите соответствующий класс на Python для ноды этого json с нужными вам методами «получить_родителя», «получить_наследника», «проверить_корень_ли_я», ну и для создания-удаления наследников парочку методов.
    Ответ написан
    6 комментариев
  • Ошибка при нажатии кнопки "Next", (Instagram, Selenium) Как исправить?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Разделите эту огромную простыню на небольшие функции, которые будут каждая делать только одно. Признак, по которому можно делить - «и». Если функция делает то и это, выделяем функции «делать то» и «делать это».
    Основная функция вызывает остальные в нужном порядке.
    Так отладить всё это будет значительно проще.

    Кстати, модный deekpeek прекрасно умеет порезать такую портянку кода на ленточки, пробуйте.
    Ответ написан
  • Почему self интерпретируется как None в ходе инициализации __init__?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    def __init__(self, depth: int):
        self.split_pair: Optional[SplitPair] = None
    …
    def __str__(self):
        return str(self.split_pair)

    Полагаю, причина тут. self получает «строковое представление» “None”
    Ответ написан
    Комментировать
  • Как в столбце найти частичное совпадение фразы?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Если вам надо решить чисто практическую задачу - скачайте и установите расширение PLEX с сайта планета эксель. Там есть в том числе библиотека формул и макросов, в которой есть в том числе нечеткое сравнение, и даже не одно. Но из практики оно работает так себе… но это хоть что-то.

    Если же вам надо теоретическое решение - ищите на Хабре статью «Как работает неточное сравнение строк».
    Ответ написан
    Комментировать
  • Первая часть бота работает, выводит список ролей. После выбора роли ничего не происходит. В чем может быть проблема?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Полагаю, проблема может быть в том, что это не код, а бред нейросети. Бред нейросети можно использовать в качестве шаблончика, который надо прочесть, осмыслить и поправить. Если вы не осмыслили, вам надо сначала что-то попроще сделать.
    Ответ написан
  • Ростелеком интернет через свое оборудование, возможно?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    У Ростелеком интернет заведен с вероятностью 99.9% по GPON (я знаю только одну экспериментальную сеть доступа Ростелеком не GPON, а точка-точка, и маловероятно, что вы к ней относитесь).
    Так что необходимо не просто оптический порт, а GPON порт; а это - нужна специальная SFP; более того, нужно еще правильные настройки залить. А их вам никто никогда не сообщит.
    Таким образом, практически невозможно использовать своё оборудование с оптическими сетями Ростелеком.
    Ответ написан
  • Ноут поплыл артефактами после установки программы.?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    После не значит вследствие.
    spoiler
    Известен случай, когда товарищ сидел в туалете, слил воду и случилось землетрясение, полгорода развалилось, товарищ чудом выжил в своем сортире. Его откопали, но сошел с ума, потому что решил, что землетрясение - его рук дело. Не надо так.

    После установки программы ноутбук сломался. Не значит, что вследствие. Он просто сломался - сдохла память или переклинило вентилятор и от перегрева поплыл процессор или графический сопроцессор, или графическая память, если она выделенная. Или шлейф где-то перетерся, или конденсаторы сдохли, или кошак нассал на ноут, он отсырел и завелась плесень, или окислился внутри, или блок питания пробился и переменка в ноут попала… да мало ли.
    Но возможно это программная проблема - вирус или сбой.

    Можно ли продолжить работу? Вероятно, на этом ноутбуке - нет.
    Проверить можно, попытавшись загрузиться с загрузочной флешки с каким-либо live дистрибутивом чего-то типа Linux. Если Linux запустится без проблем - вероятно, ноут исправен (но не гарантированно).

    Ни в коем случае не пытайтесь просто переустановить систему или напустить на нее «исправлятор».

    Самое лучшее, что можно сделать:
    Если удастся загрузиться с флешки, то попытаться спасти свои данные, внимательно и аккуратно их найти и не повредив, скопировать на другую флешку.
    Если не удастся загрузиться с флешки, то снять диск с ноутбука и попытаться считать ваши материалы и проект с него через usb-переходник, как с флешки.

    Еще раз - ни в коем случае не пытаться что-то исправлять, пока не спасете документы и проекты.

    После спасения документов - ноут в ремонт или в утиль, продолжать доделывать свой проект на другом компьютере.
    Ответ написан
    Комментировать
  • Корректный алгоритм изучения языка программирования?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    А возьмите язык Go. Он сделан так, что в нем вы сразу получаете готовый монолитный бинарный исполняемый файл. Тот самый exe. Бери и запускай. Думать о сборке, компиляции и прочих заморочках не надо. Фигак-фигак и готово.
    Ответ написан
  • Как отправить запрос в LM Studio?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Прямо в опубликованной вами ссылке есть несколько примеров (example) под каждый метод API. Используется curl. Возьмите их и переделайте под свои задачи.
    Ответ написан
    Комментировать
  • Как научиться декомпозиции в ООП?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Я когда-то так же застрял. Не понимал, как же выделять эти самые классы? И зачем?
    Долго тупил в эти «авто» и наследники «грузовик» и «легковушка», с колесиками и баками.
    Или users с managers и clients.
    Всё это было понятно, пока не пытался сам что-то осмыслить из реальной жизни.

    Мне помогли две вещи:
    1. Фраза учителя типа «класс - это заголовок таблицы; строки - экземпляры класса; имена колонок - имена атрибутов класса». Это ОЧЕНЬ ГРУБО. И многие поспорят и будут правы. И для понимания идеи учителя надо понимать базы данных или хотя бы excel и access (я как раз тогда только что это дело изучил). Но это меня сдвинуло с мертвой точки.
    2. Я долго строил всякие «парсеры» из лапши и перегруженных дурно пахнущих функций. Мне попалась на Хабре переводная статья (точнее, не официальная документация) про selenium и раскладку его в стиле ООП. Это не прям образец для подражания (там есть пара деталей, которые мне очень не понравились), но когда я свой код рефакторил в соответствии с рекомендациями этой статьи (это было долго, больно, но в итоге получилось гораздо красивее исходной чудовищной лапши), я многое понял.
    Ответ написан
    1 комментарий
  • Какие инструменты Вы используете для парсинга?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Если надо быстро и с минимумом писанины - лепите на RPA. Я в своё время на Sherpa лепил хоть и костыльные, но вполне рабочие «парсеры».
    Ответ написан
  • Как мгновенно выключить питание ATX из Windows?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Подключаешь к компьютеру матричный принтер, желательно А3 формата, он помассивней, привязываешь к каретке принтера веревкой вилку кабеля питания выключаемого компьютера, отправляешь на этот принтер печать строки «выключи меня скорееееееееееееееееееееееееееееееее» и всё.

    Есть альтернативный вариант: напротив кнопки питания на блоке питания выключаемого компьютера ставится выключающий компьютер с CD-дисководом. На выключающем компьютере даёшь команду выдвинуть лоток CD-дисковода, тот нажимает на кнопку питания выключаемого - профит!

    Также есть любопытный приборчик fingerbot - управляемый беспроводной палец для нажатия физических кнопок. Поищи, их сейчас много продается разных. У меня такой управляет кнопкой подсветки на кухонной вытяжке (неохота лезть внутрь, приклеил fingerbot-а).
    spoiler
    6783664121fcf184378883.jpeg
    больше года полёт нормальный.
    Ответ написан
    2 комментария
  • Как избежать FLOOD_WAIT_X в pyrogram?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Сделать задержку, лучше случайной длины. Сказано же в ошибке - вы флудите, подождите. Вот и не флудите. Подождите.
    Ответ написан
  • Возможно ли парсить разные сайты одним скриптом?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Возможно почти всё, что можно представить хоть сколько-нибудь внятно. Кое-что не возможно принципиально.

    В общем случае ваша задача (всегда успешно парсить 15 первых выдачей гугля условно на любой запрос) нерешаема по причине существования теоремы Гёделя о неполноте. Потому что возможно создание принципиально нерешаемого сочетания факторов в этой ситуации.

    Но практически для большинства случаев это решаемо, если не требовать 100% точность в 100% случаях.

    Но есть еще одна неприятность: чем ближе вы будете приближаться к 100%, тем дороже это будет. Слышали про принцип 80/20? Вот как-то так. «Спарсить» условно половину сложно, но можно. 2/3 можно, но дорого. 3/4 очень дорого и вряд ли окупится. Условные 81% не окупится, вероятно, никогда.

    У вас есть бесконечное количество денег, энергии и времени? Тогда возможно всё.
    Ответ написан
    Комментировать
  • Как прогнозировать цены монет с помощью python?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Никак. Достоверные предсказания невозможны принципиально, так как требуют данные, которых у вас нет и быть не может. Вот почитайте. Всё уже украдено до вас.
    Ответ написан
    Комментировать
  • Ошибка TypeError: 'int' object is not subscriptable в списке, как решить данную проблему?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Перечитайте, что возвращает метод строк .index - явно не то, что вы ожидаете.
    Ответ написан
    Комментировать
  • AIOGRAM TypeError: State.__init__() got multiple values for argument 'state' в чем может быть ошибка?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Проблема в том, что вы не читаете документацию, вот и сейчас не прочли документацию о том, как правильно размещать код здесь.
    Ответ написан
    Комментировать
  • Как отправить несколько фото через телеграм-бот?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Накосячил в том, что не читал документацию API телеграма, не разбирался, а притащил сюда бред от чатжпт и хочешь, чтобы за тебя разбирались.
    Ответ написан
    Комментировать
  • Как записать Словарь в CSV по столбцам в Python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    У меня ваш код работает отлично. Создает csv с разделителями запятыми, корректно открывающийся в стороннем приложении (например, Numbers на macos).

    Возможно, вам хотелось сделать csv с табуляциями - используйте параметр dialect (описан в документации к библиотеке csv).
    Вот я чуток переделал для примера:
    import csv
    import os
    from pathlib import Path
    
    # Данные из переменной 'a'
    my_row = {
        'url': 'https://www.coindesk.com/policy/2024/08/08/ftx-alameda-ordered-to-pay-127b-to-creditors-by-us-judge/',
        'title': 'FTX, Alameda Ordered to Pay $12.7B to Creditors by U.S. Judge',
        'author': 'Shaurya Malwa',
        'date': 'Aug 8, 2024 at 6:44 a.m. UTC'
    }
    # делаю три строчки для примера массива.
    data = [my_row] * 3
    
    # Имя CSV файла
    dir_path = Path(os.path.dirname(os.path.realpath(__file__)))
    pathname = dir_path / 'data'
    if not pathname.exists():
        os.mkdir(pathname)
    filename = pathname / 'data3.csv'
    
    
    
    # Открываем файл в режиме добавления (append) с возможностью чтения (a+)
    with open(filename, mode='a+', newline='', encoding='utf-8') as file:
        # Создаем объект writer для записи данных в CSV
        writer = csv.DictWriter(file, fieldnames=data[0].keys(), dialect='excel-tab')
    
        # Если файл пустой или только что создан, записываем заголовки
        if not filename.exists() or file.tell() == 0:
            writer.writeheader()  # Записываем заголовки (названия столбцов)
    
        # Записываем строки данных (содержимое столбцов)
        for row in data:
            writer.writerow(row)
    Ответ написан
    1 комментарий