• Как можно удалить все файлы начинающиеся на определенные символы?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    1. Получаете список файлов с помощью glob с помощью шаблона.
    2. Проходитесь циклом по получившемуся списку и на каждом элементе используете функцию remove() из пакета OS
    Ответ написан
    Комментировать
  • Почему join еще одной таблицы изменяет мой count?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    JOIN - это декартово произведение таблиц. При отсутствии фильтра ON число строк результата JOIN'а будет равняться произведению числа строк таблиц, входящих в JOIN.
    В вашем случае, если в users_groups_link есть несколько строк с одним group_id, то в результате JOIN'а для каждой из них будет создана отдельная строка результата.
    Побороть можно, например, используя count(DISTINCT sl.salon_id).
    Ответ написан
    1 комментарий
  • Создаю свою первую базу данных, ошибка ERROR 1064 (42000), как исправить?

    @basili4-1982
    По ошибке видно что проблема с синтаксисом.
    >CREAT DATABASE mybase
    CREATE DATABASE mybase;
    так правильней.
    И еще у mysql нет кабинета. Есть клиент. То что ты используешь скорей всего phpmyadmin
    Ответ написан
    3 комментария
  • Почему в python при таком арифметическим действием (3**2%7) при расчете ответ будет 2?

    гуглить "python operator precedence"

    Результат: Expressions - 6.17. Operator precedence
    Там таблица. Чем выше строка, тем выше приоритет.
    Возведение в степень ** выше остатка от деления %,
    поэтому сначала в степень 3**2 == 9, уже потом деление по модулю на 7 (остаток == 2)
    Ответ написан
    1 комментарий
  • Может ли физ лицо создавать интернет-проекты?

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

    Квалификация данных как персональных очень разнообразна, в некоторых странах под них подапают IP-адреса, электронная почта, куки итд. Также сложно сказать, что именно решит судья в тех случаях, когда сайт будет ответчиком или иной стороной в судебном деле. В России так особенно сложно.

    Для того, чтобы не получать формальных претензий от властей разных стран (в первую очередь ЕС, который требует соблюдать GDPR и другие нормативные акты по отношению к своим гражданам безотносительно места предоставления им услуг), сейчас много кто начал показывать на всякий случай предупреждение о куках и выкладывать формальную политику конфиденциальности (которая всё равно по большому счёту декларация о намерениях). Публиковать свои собственные личные данные в ней необязательно. Достаточно просто указать в ней адрес электронной почты или ссылку на онлайн-форму для связи, с помощью которой можно обратиться с запросом на удаление данных. Ну и стандартные ля-ля об использовании электронной почты для предоставлению пользователю дополнительных услуг, требующих его идентификации и всё такое.

    Кроме того, в некоторых случаях политика конфиденциальности требуется не для соответствия законам, а по правилам тех или иных сайтов и сервисов. Например, для прохождения review приложения в Facebook у него обязательно должна быть опубликована политика конфиденциальности. Когда мне потребовалось пройти этот квест (по работе), я взял текст с сайта своей компании и немного отредактировал, даже гуглить примеры не потребовалось.
    Ответ написан
    Комментировать
  • Как сконвертировать минуты в часы и минуты?

    @U235U235
    Попробуйте так:
    hour = int(input())
    minute = int(input())
    waiting = int(input())
    time_mitutes=hour*60+minute+waiting
    h,m=divmod(time_mitutes%1440, 60)
    print(f'{h:02d}:{m:02d}')
    Ответ написан
    6 комментариев
  • Как суммировать количество повторяющих значений?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    WINDOW FUNCTIONS в PostgreSQL уже давно:
    select
        t.*,
        count(*) over (partition by number_id)
    from t order by id;


    https://sqlize.online/sql/psql13/3d37b9a0fe32505b9...
    Ответ написан
    Комментировать
  • Установка mysql - ошибка 1045(28000)?

    @Akina
    Сетевой и системный админ, SQL-программист.
    - ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)


    Выделенный фрагмент чётко указывает на причину - использованная строка запуска не настроена на передачу пароля.

    Дословно сообщение означает: пользователя 'root'@'localhost' не получилось аутентифицировать с пустым паролем. Всё, не больше и не меньше. А по какой причине - пароль не пуст, такого юзера нет, или вообще это роль, а не юзер - сообщение установить не позволяет.

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

    iMedved2009
    @iMedved2009
    Не люблю людей
    select requests.*
    from (SELECT export_id, max(imported_at) as imported_at FROM requests GROUP BY export_id) as t
             join requests on requests.export_id = t.export_id and requests.imported_at = t.imported_at
    Ответ написан
    1 комментарий
  • Как получить название столбца sqlite?

    Vindicar
    @Vindicar
    RTFM!
    Поясню ответ выше: если у тебя названия стобцов неизвестны заранее, ты неправильно спроектировал базу данных. Столбцы должны быть неизменны - меняется только набор строк.

    Если у тебя есть ситуация, когда многие сущности связаны со многими (например, отношение "друзья" между пользователями), используй связную таблицу для этого.
    Ответ написан
    2 комментария
  • Как упомянуть ник пользователя дискорд через ID, не используя mention?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    не используя mention
    Не используя почему?
    AttributeError: 'str' object has no attribute 'id'
    потому что user.id, а лучше сразу user.mention.
    Не важно что пользователь вводит только id, в команду приходит объект disnake.User

    P.S. А еще вы забыли сделать обработку для await user.send(message) на случай если у человека закрыта личка.
    Ответ написан
    Комментировать
  • Как найти угол между двумя точками?

    Dr_Elvis
    @Dr_Elvis
    В гугле забанен
    угол между ДВУМЯ точками всегда 180 градусов, так как они ВСЕГДА находятся на одной прямой.
    Ответ написан
    Комментировать
  • Создание файла python. Как создать файл,название которого вводится после запуска программы?

    Lord_of_Rings
    @Lord_of_Rings
    Python developer
    name = input("Введите название файла")
    with open(name, "w"):
        pass
    Ответ написан
    Комментировать
  • Нужно написать загадку используя python. Где я сделал ошибку?

    Замените or на and.
    По закону де Моргана not (A or B) = not A and not B
    Ответ написан
    1 комментарий
  • Как создать новый словарь, не меняя старый?

    Vindicar
    @Vindicar
    RTFM!
    rows = self.rows
    НО! В тоже время изменяется из self.rows, который является другим списком.

    Не является. Твой оператор просто присвоил переменной rows ссылку на тот же самый список, что и self.rows.
    Это легко проверить оператором is или сравнением id():
    print(rows is self.rows, id(rows) == id(self.rows))  # True True

    Более того, если ты только скопируешь сам список:
    rows = self.rows.copy()
    То всё ещё поймаешь проблемы, так как скопируются ссылки на элементы, а не их значения:
    print(rows is self.rows, id(rows) == id(self.rows))  # False False
    print(rows[0] is self.rows[0], id(rows[0]) == id(self.rows[0]))  # True True

    Тебе нужно сделать глубокую копию (deepcopy). Это можно сделать вручную, так как у тебя всего два уровня вложенности (список-словарь):
    rows = [rowdict.copy() for rowdict in self.rows]
    Для более глубоких уровней есть функция copy.deepcopy(), но у неё есть свои подводные камни. Цитата:
    Two problems often exist with deep copy operations that don’t exist with shallow copy operations:
    Recursive objects (compound objects that, directly or indirectly, contain a reference to themselves) may cause a recursive loop.
    Because deep copy copies everything it may copy too much, such as data which is intended to be shared between copies.
    Ответ написан
    Комментировать
  • Как из массива целых чисел найти все возможные комбинации (не только двух чисел, а и более) дающие искомую сумму?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Во-первых, таких комбинаций может быть до 2^n, где n - количество чисел в массиве.

    Можно рекурсивно перебрать числа: функция принимает список уже выбранных чисел, их сумму и сколько первых чисел массива обработаны. Если все числа обработаны, функция сравнивает сумму с искомой и, если надо, выводит список. Потом завершается. Если еще не все числа обработанны, то функция два раза рекурсивно вызвается с параметрами: Текущее число добавлено или нет в список, обработано на одно чисел больше.

    Другой вариант, через битовые маски, без рекурсии. Перебирайте число от 0 до 2^n-1. Потом смотрите на него, как на битовую маску. Так вы переберете все подмножества из n элементов. Если i-ый бит установлен, то берите i-ое число в сумму. Если сумма совпала с искомой - вы нашли вариант.

    Ну и самый быстрый вариант: с использованием динамического программирования. Как в задаче о рюкзаке вам надо подсчитать F(i,j) - можно ли числами с i-ого по последнее собрать сумму равную j. Потом рекурсивый перебор оптимизируется с этой информацией. Вы текущее число берете или нет и запускаетесь рекурсивно, если оставшимеся числами можно набрать оставшуюся сумму до ответа.

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

    vabka
    @vabka
    Токсичный шарпист
    API - это не само приложение, а описание того, как одно приложение может взаимодействовать с другим.

    В случае winapi - это описание того, как ты можешь взаимодействовать с виндой (как раз через вызовы определённых функций)

    В случае веба - описание того, какие http запросы ты должен слать для совершения тех или иных действий.

    Консольное приложение в принципе может быть некоторый способом для взаимодействие с чем-то - git тому пример, но у консольного приложения тоже есть свой контракт
    Ответ написан
    Комментировать
  • Если "украл" рисунок у нейросети, может ли на тебя подать в суд владелец этой нейросети?

    vabka
    @vabka
    Токсичный шарпист
    Нет никакого "ИИ" => Украсть у робота рисунок ты не можешь.
    Есть только некоторое ПО, с помощью которого ты можешь создавать картинки.
    У программы ты украсть тоже ничего не можешь, тк программа не субъект права. (прим из реальной жизни: Когда ты крадёшь деньги из сейфа - ты крадёшь не у сейфа, а у его владельца)

    Так что смотри на лицензию на это ПО - разрешено ли использовать сгенерированные картинки в коммерческих целях.

    Если уж корректно задавать вопрос: подала ли бы Студия Артемия Лебедева за то, что ты украл пикчу у Николая Иронова?

    Есть оферта: https://ironov.artlebedev.com/static/offer-ru.pdf
    Там есть раздел и про интеллектуальную собственность в том числе.
    Автором является студия артемия лебедева.
    Тебе даются исключительные права, но без права на сублицензирование, и ты не имеешь права писать, что автор - студия артемия лебедева.
    Студия артемия лебедева может использовать сгенерированные логотипы для саморекламы, например.

    Если ты скопируешь чужой логотип, который сгенерирован Николаем Ироновым, то ты "крадёшь" его у владельца логотипа.
    Если ты скопируешь логотип, который ты не оплатил в рамках тарифа - ты украдёшь у студии артемия лебедева и они в принципе имеют возможность подать на тебя в суд и выиграть его, тк у тебя на этом моменте ещё нет исключительных прав.
    Ответ написан
    7 комментариев
  • Задача по математики из 5-го класса которая завела меня в ступор?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    a + g = 355600
    a = 2g + 97300
    2g + 97300 + g = 355600
    3g = 355600 - 97300
    g = 258300 / 3 = 86100
    a = 2 * 86100 + 97300 = 269500
    Ответ написан
    Комментировать
  • Как реализовать онлайн трансляцию экрана на Python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Сам по себе Python ничего не транслирует. Но из него можно вызвать утилиты такие как
    * ffmpeg
    * openRTSP
    * cvlc (Concole VLC player)
    и дать им задание что-то транслировать.

    Еще почитай про RTSP/RTP протоколы для общего развития.

    Вообще это задание требует обширных знаний сетей и протоколов. И просто на одном Python тут я считаю нельзя выехать.
    Ответ написан
    Комментировать