• Когда я пишу команду в дискорде для получения данных с api, остаются скобочки; что делать?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Разобраться, что такое «скобочки». В этом вам поможет книга «Изучаем Python» М.Лутца. Серьезно. Я сам, когда начинал изучать Python, долго не мог найти в инете, что с этими скобочками не так. Даже в официальной документации об этом сказано как-то невнятно. Именно у Лутца это разжевано внятно и понятно.

    В вашем случае круглые скобочки - не просто скобочки; это литерал последовательности tuple, и то, что обернуто в скобочки и разделено запятой, становится последовательностью типа «кортеж» ( он же tuple).

    Вам надо почитать документацию по вашему боту и понять, какие типы принимает метод .add_field в качестве аргумента value, и это и передавать - очевидно, без скобок.
    Ответ написан
    Комментировать
  • Почему exe-файл бота на aiogram запускается не на всех компьютерах?

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

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Офисные задачи (собственно ms office и иже с ним, браузер, почта… ) вполне успешно работают на i5 3-4 поколения с 8 гигами памяти. Это даже жирно.
    Вопрос скорее в потреблении. Каждое следующее поколение на тех же задачах обычно немного экономичнее, холоднее. Не требует столь активного охлаждения, соответственно тише и менее геморно в обслуживании.

    Для офиса на мой взгляд надо взять самый холодный проц, такой чтоб обошелся безвентиляторным радиатором, небольшую ssd и побольше ОЗУ для прожорливых браузеров. Плюс хороший блок питания, тут экономить не надо. Тихий большой низкооборотный вентилятор (дорогой!) на выдув из системника. И самую дешевую двухголовую видеокарту, т.к. офисный комп желательно с двумя мониторами. И ещё ИБП непременно, офисному компу полезно.
    Ответ написан
  • MySQL Master Slave не корректно работает?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    В принципе, можно настроить триггеры на slave. Трудно представить сценарий, который нельзя триггерами обработать. Но это, конечно, надо проектировать и кодить код. И тестировать.
    Мышкой это не натыкаешь.
    Ответ написан
    Комментировать
  • Калькулятор на Python?

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

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Спросил у нашего преподавателя, его рекомендации ниже:
    Вот интересные книги:
    “Database Internals” by Alex Petrov,
    “PostgreSQL изнутри" Рогов.

    1 книга - работа в общем для баз данных,
    2 книга - конкретно PostgreSQL
    Ответ написан
    2 комментария
  • Как создавать экземпляры класса python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    В первом приближении класс пользователей - это таблица (например, в реляционной базе данных). Таким образом, создание экземпляра для каждого пользователя суть внесение записи в таблицу. Каждая запись в таблице - это экземпляр класса, соответствующий пользователю.
    Реализовывать это в виде собственно класса можно разными способами - можно вручную прописывать связь полей таблицы и атрибутов класса, можно попытаться подтянуть средствами sql alchemy orm…
    Ответ написан
    Комментировать
  • Что делать, если отключил службу, отвечающую за пинкод в виндоусе, а пинкод есть?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Что делать, если отключил службу, отвечающую за пинкод в виндоусе, а пинкод есть?

    Поскольку мы не знаем, что именно ты там поотключал и как это в дальнейшем может сказаться на работе системы, рекомендации могут быть только самые общие.
    Установи систему заново.
    Когда вновь установишь windows, положи рядом с клавиатурой металлическую линейку и всякий раз, как чьи-либо руки полезут отключать сервисы и копаться в настройках windows, бей по тем рукам этой линейкой. Таким образом ты существенно снизишь вероятность возникновения подобной проблемы.
    Ответ написан
    Комментировать
  • Как поменять при выводе списка последнюю запятую на 'или'?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Подсказка:
    Выведи последовательность без последнего элемента, потом союз, потом последний элемент.
    Это просто. Можно сделать одной строчкой.
    Тебе понадобятся темы: f-строки и срезы.

    spoiler
    В скобках замечу, что очень полезно будет заодно изучить тему «списки», обратить внимание на литералы списков. Также порекомендую никогда не использовать имена стандартных типов (list, dict и т.п.) в качестве имен своих переменных. Если очень хочется, пиши my_list.
    Ответ написан
    2 комментария
  • Как получить значение в атрибуте href?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    for item in categories:
        item_url = item.find('a').get('href')
        print(item_url)
    Ответ написан
    Комментировать
  • Как решить проблему с обновлением pip?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Во-первых, надо явно указывать пути к ПО, которое запускаешь.
    Во-вторых, желательно запускать их, находясь в соответствующих папках, а не абы откуда.
    В-третьих, я бы не советовал обновлять штатный Python в Linux, т.к. на него там завязаны некоторые внутренние процессы. Пусть сам linux обновляет свои встроенные python как ему надо. После обновлений не исключены разнообразные неприятности.

    Вы ставьте себе свои python-ы в отдельные папки, в разных случаях могут понадобиться разные версии, и явно их вызывайте оттуда, не трогая системный python. И для этого лучше работать в виртуальных окружениях, подгоняя каждое под свою задачу.
    Ответ написан
    Комментировать
  • Для чего нужны Map и Set?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Из вопроса ничего не понятно, кроме того, что документацию не читали, гуглить не умеем, о структурах данных понятия не имеем. Грустное зрелище. Душераздирающее.
    https://learn.javascript.ru/map-set
    коротко:
    • Set - это множество уникальных объектов.
    • Map - это словарь, где каждому из множества уникальных объектов сопоставлено некое значение (возможно не уникальное).


    Совет: изучите структуры данных. Без этого дальше двигаться бессмысленно.
    Ответ написан
    Комментировать
  • Как удалить строку из массива не обладая ID, JSON?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Итак:
    приведенный в вопросе json не валидный, и работать с ним как с json нельзя.
    Я предположил, что мы получаем валидный JSON вот такого вида:
    {
        "users": [
          {"user": "name_test"},
          {"user": "name_test1"},
          {"user": "name_test2"}
        ]
    }

    тогда правильный код будет выглядеть, например, так:
    import json
    
    args = "name_test2"
    with open('config.json', 'rb') as fp:
        jsondata = json.load(fp)
        jsondata['users'] = [item for item in jsondata['users'] if item['user'] != args]
        print(jsondata)
    Ответ написан
  • Код не работает, что делать?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Поигрался со своим чатом,
    короче, вот что получилось
    import asyncio
    
    from pyrogram import Client
    import shelve
    import random
    
    from secret.config import Config
    TEXTS = ['Круто!', 'Nice!!!!', 'Oh my god']
    
    config = Config()
    api_id = config.api_id
    api_hash = config.api_hash
    phone_number = config.phone
    PUBLIC = config.title
    chat_id = config.chat_id
    name = config.name
    processed_messages = shelve.open('processed_messages.db', writeback=True)
    app = Client(name, api_id, api_hash, phone_number=phone_number)
    
    
    async def main():
        async with app:
            public = await app.get_chat(PUBLIC)
            async for msg in app.get_chat_history(chat_id, limit=100):
                if msg.from_user:  # если у нас есть параметр from_user
                    any_sender_id = msg.from_user.id  # присваеваем ID юзера
                else:  # иначе
                    any_sender_id = msg.sender_chat.id  # присваеваем ID канала или чата
                if any_sender_id == public.id:  # проверяем что это нужный паблик
                    if str(msg.id) in processed_messages:
                        print(f'Пропускаем уже обработанное message_id={msg.id}')
    
                    else:
                        processed_messages.update({str(msg.id): True})
                        print(f'Обработка message_id={msg.id}')
                        text = random.choice(TEXTS)
                        print(text)
                        result = await app.send_message(chat_id, text, reply_to_message_id=msg.id)
                        processed_messages.update({str(result.id): True})
    
                        await asyncio.sleep(1)  # пауза, чтоб не банили за флуд
    
    
    app.run(main())
    из твоего кода.
    Конечно, это всё такое... ну... прототип. Пользоваться этим "в лоб" я бы не советовал.
    Ответ написан
    Комментировать
  • Как рандомно расположить объекты без пересечений?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Для решения этой проблемы в игровых движках обычно есть встроенный механизм collide или что-нибудь в таком духе.
    Например, в pygame можно создать объект типа Rect и у него будет методы colliderect(Rect) и collidelist(list); первый проверяет пересечение текущего и указанного объектов Rect; последний метод берет список объектов типа Rect, поданный на вход, и проверяет на пересечение с хотя бы одним из них.
    Так что всё, что вы хотите сделать, уже есть в pygame «из коробки»
    Вам лишь необходимо почитать документацию.
    Ответ написан
  • Pyrogram bot: как отправить фото по айди?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Полагаю, в лоб никак. В документации Telegram сказано, что big_file_idможно использовать только для download.
    В общем, видимо, вам придется их куда-то скачивать (в память?) и затем отдавать в другой чат.
    Ответ написан
    3 комментария
  • Ошибка в коде (Python). Не пойму в чем дело и почему он не пропускает?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    В классе Settings два __init__
    Естественно, второй перезаписывает первый.
    Ответ написан
    1 комментарий
  • Как пройтись по 2 спискам одновременно?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Ну если в лоб, можно проверку на extension сделать внутри цикла по directories.
    Если их не безумное количество и нет необходимости сэкономить микросекунды на каждом цикле, то пойдёт.
    Ответ написан
  • Автоматическая сортировка столбца в Excel?

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

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Есть такие способы. И методы.
    Ответ написан
    2 комментария