Задать вопрос
  • Счетчик работает, а команды COGS перестали. Что делать?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Счетчик работает, а команды COGS перестали. Что делать?

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

    black1277
    @black1277
    Вольный стрелок
    Швец А. Погружение в паттерны проектирования (2018) - современное продолжение темы банды четырех с примерами на разных языках.
    The Clean Architecture - by Robert C. Martin (Uncle Bob) - но это не совсем новенькое
    Ответ написан
    3 комментария
  • Возможно ли окно у окна отключить взаимодействие?

    Nightmare1
    @Nightmare1 Автор вопроса
    Программист
    Нашёл решение ,флаг QtCore.Qt.WindowTransparentForInput отключает возможность взаимодействия мышью и клавиатурой с плоскостью отображения.

    self.setWindowFlags(
                QtCore.Qt.WindowStaysOnTopHint |
                QtCore.Qt.FramelessWindowHint |
                QtCore.Qt.X11BypassWindowManagerHint
                | QtCore.Qt.WindowTransparentForInput
            )
    Ответ написан
    Комментировать
  • Python, проблема вывода значения списка (не могу объяснить точнее в чем проблема, я pre-pre-pre junior developer)?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Вопрос кажется простым. Но ответ потребует объяснения большого количества разнообразных принципов и может превратиться в целый цикл лекций.
    Набросаем путь освоения:
    1. Объектная модель языка Python
    2. Структуры данных вообще и языка Python в частности
    3. ООП вообще и понятие классов, экземпляров, атрибутов, методов, инициализации экземпляров в частности.
    4. Реализация конкретного класса User в конкретной версии библиотеки.
    5. Осмысление места, роли этого класса, его атрибутов, причин такой реализации, последствий для программирования бота;
    6. Вероятно, базы данных, их связь с классами; поля БД, их связь с атрибутами класса;
    7. Понимание, как всё это в целом работает, какие пути есть для получения искомых сведений и какие последствия могут возникнуть для работы бота, канала, Телеграма и его пользователей при работе с этими сведениями.


    Вот вам пример простейшей реализации:
    class User:
        def __init__(self, a, b, c):
            self.a = a
            self.b = b
            self.c = c
    
        def __repr__(self):
            return f'a:{self.a}\tb:{self.b}\tc:{self.c}'
    
    users = [User(1, 2, 3), User(('z', 'y', 'x'), 5, 6), User('a', 'b', None)]
    
    for user in users:
        print(user)
        print(f'a:{user.a}')
    print(users[1].a)
    print(users[2].c)

    из него можно извлечь некоторые сведения для вас.

    Но вовсе не обязательно, что в вашем классе User всё реализовано так просто. Надо посмотреть на него глазами.
    Ответ написан
    Комментировать
  • Можно ли зделать свою команду в командной строке linux?

    paran0id
    @paran0id Куратор тега Linux
    Умный, но ленивый
    Да, можно. Гуглите bash alias. Еще можно добавить ваш скрипт в $PATH
    Ответ написан
    Комментировать
  • Можно ли зделать свою команду в командной строке linux?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Можно, называется алиас.
    Ответ написан
    Комментировать
  • Замена "Почта для бизнеса" от @Mail.ru?

    Zoho Mail Free for 5 Users )
    ну или у тех же Zoho от 0.9 евро/мес
    Ответ написан
    Комментировать
  • Невозможно вносить изменения в Excel файл пока он открыт. Openpyxl. Python. Что можно сделать?

    Dr_Elvis
    @Dr_Elvis Куратор тега Python
    В гугле забанен
    Закрой. Твой кэп.
    Ответ написан
    Комментировать
  • Невозможно вносить изменения в Excel файл пока он открыт. Openpyxl. Python. Что можно сделать?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Ждать пока он закроется. Excel не допускает открытия файла двумя процессами.
    Ответ написан
    Комментировать
  • Запуск своей программы вместо графической оболочки в Linux?

    @rPman
    Например
    1. отключаешь display manager - lightdm (или что у тебя там для меню авторизации и выбора DE)
    2. минимум что необходимо для работы графического режима - это xserver, для его запуска достаточно запустить утилиту X (кстати кажется до сих пор требует root), будет запущен графический сервер без Desktop Environment, но нужно понимать что DE отвечает за управление окнами, а точнее управление их размерами, положением на экране и вообще сокрытие/минимизация. Т.е. без этого, если твое приложение ожидает что пользователь будет перемещать его окна (а это к примеру диалоговое окно открытия/сохранения файлов) то он уже это сделать не сможет, все окна будут без заголовков и бордюра для изменения их размеров.
    И кстати, чтобы графическое приложение запустилось и отображалось на X нужно устанавливать переменную окружения DISPLAY, значение смотреть либо в конфиге X либо в логах (скорее всего будет что то типа :0, это имя сервера и номер xserver, запущенного на нем, напоминаю, что linux из коробки умеет multiseat)
    3. чтобы появился хоть какой то интерфейс взаимодействия, нужно установить DE, из минималистичных, идеальных для kiosk mode - я бы рекомендовал awesome, в нем к примеру можно настроить чтобы все открываемые окна сразу разворачивались на весь экран.

    Кстати со всеми xserver обычно идет древний дефолтный twm, настолько примитивный что даже смешно, но если бы при открытии любого окна он не требовал от пользователя указать расположение и размер, им можно было бы пользоваться (не удивлюсь если это настраивается но никогда этим вопросом не задавался).

    Из минималистичных и вполне функциональных DE можно предложить еще какой-нибудь openbox, его можно настроить так чтобы вообще никаких 'пуск' и списка задач не было, а только иконки и приложение на весь экран. Но пользователь сможет добраться до редактирования меню и запустить любое приложение, т.е. это не для kiosk mode

    Чтобы запустить xserver с DE автоматически можно либо настроить автозагрузку в lightdm (это правильно) либо просто запускать утилиту startx, которая смотрит в пользовательском каталоге .xinitrc и запускает DE от туда.

    На самом деле процесс запуска DE стал очень замудреный, его запутали несколько поколений разработчиков и выпутывать не желают, но обычно все это критично для тяжелых DE типа KDE, а что то простое и легкое с приложениями на gtk работает и так

    Собственно как запускать приложения автоматически при включении компьютера тоже вопрос очень интересный, способов много, минимум три могу предложить
    * правильный - настроить службу и прописать ей зависимости и автозапуск,
    * так же до сих пор есть устаревший способ настройки службы без зависимостей sysvinit - /etc/init.d
    * ну еще есть /etc/rc.local
    Ответ написан
    1 комментарий
  • Что занимает место на сервере VDS (Ubuntu 20.04)?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    ncdu вам красиво все распишет
    Ответ написан
    Комментировать
  • Как в скрипте Python, во время его работы, переместиться к определенной строчке кода?

    @deliro
    Слава Гвидо, нет
    Ответ написан
    Комментировать
  • Как при клике на область определить координаты XY?

    iggor-markin
    @iggor-markin
    Python Developer
    Пример из документации не подходит?

    fig, ax = plt.subplots()
    ax.plot(np.random.rand(10))
    
    def onclick(event):
        print('%s click: button=%d, x=%d, y=%d, xdata=%f, ydata=%f' %
              ('double' if  event.dblclick else' single', event.button,
               event.x, event.y, event.xdata, event.ydata))
    
    cid = fig.canvas.mpl_connect('button_press_event', onclick)
    Ответ написан
    Комментировать
  • Python / Generator как это решить?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Для начала - выучить азы pyhon.
    def generator():
        pass
    gen = generator()

    Смысл объявления пустой функции?

    gen = (s(k)/4 for k in range(10)):
    Во-первых, конструкция вида [литерал]([аргументы]) всегда будут восприниматься как вызов функции с названием [литерал] аргументами [аргументы]. А объявленой функции с именем s у вас нет.
    Далее непонятно, зачем у вас двоеточие и print(next(gen)) с отступом.
    И к тому-же, next(gen) не будет работать, т.к. generator() ничего не возвращает.
    Если пытались изменить код, то зачем? Судя по шаблону, вам нужно написать генератор в соответствующей функции generator() и уже по нему итерироваться.
    def generator():
        pass
    
    
    gen = generator()
    for _ in range(10):
        print(next(gen))
    Ответ написан
    Комментировать
  • Почему тут ошибка?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    1.Почему-бы, перед тем как брать откуда-то код (ну или писать свой, не суть) не почитать пару уроков (или пару глав любого учебника) по языку?
    2.В ошибке, которую вы не показали, кстати, четко написано, почему не работает (и даже сказано в каком конкретно месте ошибка):
    IndentationError: expected an indented block after 'while' statement on line 11

    Перевод, на всякий случай (вдруг вы английский не знаете, а абсолютно все переводчики вас забанили).
    IndentationError: ожидался блок с отступом после оператора while в строке 11

    Возможно я ожидаю слишком многого, но тут вроде-бы даже без знания языка можно понять, что нужно сделать (добавить отступ)
    Ответ написан
    Комментировать
  • Как решить проблему indentation error?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Правильно расставить отступы.
    Ответ написан
    Комментировать
  • Нормально ли бросать (throw) внутри async функции?

    SeaInside
    @SeaInside
    16 лет пилю все эти штуки
    Где-то читал, что нехорошо кидаться ошибками изнутри async функций
    ... надо только возвращать rejected Promise.

    В этом `где-то` вас обманули, так как любое возвращаемое из `async` функции значение (да, включая throw) уже обёрнуто в `Promise`.

    const foo = async () => { throw new Error('Smth went wrong'); };
    const bar = async () => Promise.reject(new Error('Smth went wrong'));

    Работают абсолютно одинаково
    Ответ написан
    3 комментария
  • Прокси в питоне?

    @Kvason
    Веб-разработчик
    Устанавливаешь requests, создаешь текстовый файл, пишешь туда все что тебе надо и дальше в коде открываешь этот файл, перебираешь построчно и используешь их как в ответе выше
    Ответ написан
    Комментировать
  • Как скидывать файлы с компьютера в какое-нибудь облачное хранилище через Python?

    Зачем пайтон? для любого облачного хранилища существуют клиенты для любой ос, который синхронизирует файлы. Достаточно создать аккаунт, установить программу и залогиниться. А потом просто поместить файл в нужную папку.
    если все же хочется с помощью питона, то вот это подходящий вариант. https://developers.google.com/drive/api
    или яндекс диск https://yandex.ru/dev/disk/rest/
    Ответ написан
    2 комментария
  • Как синхронизировать файлы на сайте с компьюетром на Python?

    @AVKor
    Никакой сайт не нужен. Любая ВПСка, самая дешёвая, плюс rsync. Пайтон не нужен.
    Ответ написан
    Комментировать