Задать вопрос
  • Как добавить шаблон с неопределенной переменной?

    @Drill
    В f-string в фигурных скобках должны быть уже существующие переменные либо выражения.
    Использовать не f-string, а строковый темплейт и строковый метод format:

    pattern = ("Поезд {number} отправляется в "
               "{departure_time} с {platform} платформы, {way} пути.")
    
    def function(pattern):
        train = {
                     "number": 123,
                    "departure_time": "13:40",
                    "platform": 2,
                    "way": 3,
                   }
       return pattern.format(**train)
    
    function(pattern)
    
    >>> 
    Поезд 123 отправляется в 13:40 с 2 платформы, 3 пути.
    Ответ написан
    Комментировать
  • Нужна ли библиотека python tkinter?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Нужна ли вам ракетка для бадминтона в футболе?
    Tkinter это библиотека для создания интерфейсов для ПК
    HTML/CSS/JS используют для вёрстки веб сайтов.
    Это совершенно разные инструменты для совершенно разных задач.
    P.S. Tkinter вещь, в целом, неплохая но, кмк, уже устаревающая. Если уж нужен интерфейс для проги на питоне, после Лутца почитайте про PyQT.

    P.P.S.

    В PyQT можно было использовать css, но довольно ограниченно.
    Ответ написан
    2 комментария
  • TypeError: sender() takes 1 positional argument but 2 were given, что не так?

    @deliro
    61e8712a70e39106732387.png
    Я бесконечно буду удивляться тому как (а главное — зачем) вы пишете ботов без малейшего понимания инструмента (языка). Неужели вам, неучам, так сложно прочитать да хотя бы https://learnxinyminutes.com/docs/ru-ru/python-ru/

    Это же ровно 5 минут вашего драгоценнейшего времени. Но нет. Мы будем долбиться в стену, писать чушь на языке, которого не знаем копипастой из туториалов, в которых ничего не понимаем, тратить кучу своего времени впустую и бежать писать совершенно одинаковые вопросы на тостер, каждого из которых тут уже было по тысяче раз и, внимание, все они проходятся ровно одной (любой) книгой по питону. НО НЕ ЧИТАТЬ ЖЕ, ведь глазки устанут.
    Ответ написан
    1 комментарий
  • В терминале Git Bash вылазит какой-то END и другое. Как убрать?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Git хочет показать вам более одного экрана с информацией, для этого он вызывает стандартную программу пейджера Unix less. Просто введите q, чтобы вернуться в терминал, когда вы больше не хотите перемещаться по выходным данным.

    j перейти на одну строку вниз
    k переместиться на одну строку вверх
    space перейти на одну страницу вниз
    b перейти на одну страницу вверх
    h показать помощь
    / поиск вперёд
    ? поиск назад

    Если вы не хотите less, просто замените его другим пейджером в конфигурации. Если вам вообще не нужен пейджер, просто используйте cat:

    git config --global --add core.pager cat
    Ответ написан
    4 комментария
  • Какой сервис использовать для бесплатного хранения видео для бэкенда на Django?

    @deliro
    Никто не будет хранить ваши огромные данные бесплатно, это никому не нужно. Пусть даже вы сделаете хитрую схему из сотен яндекс-аккаунтов и сделаете агрегатор яндекс.дисков, вас забанят очень скоро, когда увидят, что трафика на чтение очень много и он из самых разных мест. Или что он кратно превышает среднего юзера по больнице. Или что вы в кучу аккаунтов ходите через один IP адрес.
    Ответ написан
    Комментировать
  • Как сделать чтобы бот отправил любое сообщение?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Либо в кавычки, либо
    async def say(ctx, *, arg):
    Ответ написан
    Комментировать
  • Как сделать нормальный калькулятор?

    Ну для начала нужно сформулировать, что такое "нормальный калькулятор" и какие примеры он должен решать)
    Потом исходя из этого выбирать конкретный подход.
    По нормальному тебе придётся как-то парсить математическое выражение и как-то его интерпретировать.
    Для решения этой задачи вот тебе несколько тем, которые ты можешь покопать:
    1. Префиксная, постфиксная, и инфиксная нотация. Для постфиксной очень легко написать калькулятор
    2. Алгоритм сортировочной станции. Это про то как можно из инфиксной нотации сделать постфиксную
    3. Абстрактные синтаксические деревья. Это про то как можно сделать что-то более сложное.
    Ответ написан
    Комментировать
  • Как исправить SyntaxError: positional argument follows keyword argument?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    0.Не пытаться писать ботов.
    1. Изучить, что такое аргументы, какие они бывают.
    2.Открыть гугл.переводчик, вставить текст ошибки и применить только-что полученные знания.
    Ответ написан
    7 комментариев
  • Python в чем ошибка? Почему SyntaxError?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Открыть учебник и читать заново. У вас там не одна ошибка, а целая куча в нескольких несчастных строках примитивного кода. И все ошибки - элементарны.. . И к тому же код не оформлен как положено.
    Ответ написан
    5 комментариев
  • Как вывести данные из одной таблицы для каждого ряда в другой?

    tumbler
    @tumbler Куратор тега Python
    бекенд-разработчик на python
    select user_id, count(*) from table1 inner join table2 using (user_id) group by user_id

    Примерно так. Список литературы: JOIN, GROUP BY
    Ответ написан
    2 комментария
  • Как покинуть discord сервер по его идентификатору в discord.py?

    1. Не используйте устаревшую документацию.
      59mQYWj.png
      Метода bot.leave_guild нет в приведенной библиотеке уже два года.

    2. Используйте конвертер объекта discord.Guild:
      5Udu5yr.png

    3. Зачем использовать псевдонимы команды для названия команды? Декоратор команды имеет аргумент name.

    4. Для проверки выполняющего команду в discord.py существуют проверки (checks).


    DEV_LIST = [...]
    
    def check_dev(ctx):
        """Check if command caller is dev"""
        return ctx.author.id in DEV_LIST
    
    @bot.command(name="server-leave")
    @commands.check(check_dev)
    async def __leave_from_server(ctx, server: discord.Guild = None):
        """Leave from selected server"""
        if server:
            await server.leave()
        else:
            await ctx.send("You need to specify server")
    Ответ написан
    Комментировать
  • Как сделать чтобы sql не выдавала синтаксическую ошибку?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Не использовать форматирование строк для формирования запросов.
    Ответ написан
    Комментировать
  • Динамически добавить elif ветки в функцию?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Именно "динамически добавить elif ветки в функцию" никак, а альтернатив вы просите не предлагать.
    Ответ написан
    Комментировать
  • Найдите перестановку по её номеру в лексикографическом порядке. Total - кол-во элементов, К - номер перестановки. Как сократить время программы?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Вы генерируете перестановки по одной, пока не отсчитаете k. Это медленно, потому что k может быть очень большим. Перестановок-то n! - это дофига много.

    Надо генерировать ее сразу по номеру.

    Посмотрите на первый элемент. У первых (n-1)! перестановок там 1, у следующих (n-1)! - там 2, потом идет группа, начинающихся с 3 и т.д.

    Уже вы можете понять в какой группе искомая k-ая перестановка. Тупо floor(k/(n-1)!) (если нумерация с 0 и перестановок и групп). Фактически, формула для первого элемента - a[0] = (k-1)/(n-1)! + 1.

    Дальше вы можете выкинуть из рассмотрения первый элемент. Сфокусируйтесь на группе с заданным известным первым элементом. Какой номер искомая перестановка имеет среди этих (n-1)!? Надо из k вычесть количество перестановок c меньшими первыми элементами (их (a[0]-1)*(n-1)!. Потом задача сводится к преведущей - сгенерировать k-ую перестановку среди оставшихся n-1 элементов.

    Если использовать какое-нибудь дерево отрезков, чтобы быстро искать j-ый пока не занятый элемент, то все решение будет за O(n log n). Если делать совсем просто - двумя циклами - то будет O(n^2). Гораздо быстрее вашего O(n!).

    Надо только аккуратно обработать случаи, когда (n-1)! слишком большое. Фактически, вам надо найти максимальный факториал, который меньше k. Пока не спуститесь до этого момента нужно сразу брать первый незанятый элемент и не считать факториал вообще.
    Ответ написан
    Комментировать
  • Почему MySQL не может запуститься?

    Предполагаю что не хватает оперативки для запуска, попробуйте увеличить значение innodb_buffer_pool_size
    в файле /etc/my.cnf

    Должно помочь

    А так посмотрите что говорит лог ошибок Mysql /var/log/mysql/error.log
    Ответ написан
    3 комментария
  • Зачем указывать в скобках родительский класс при определении дочерного класса?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Чтобы унаследовать свойства родительского класса. Добавьте в A поля и методы, разница станет заметна.
    Ответ написан
    Комментировать
  • Как в Python вывести таблицу как в примере?

    @Drill
    Вообще-то, Prettytable понимает multirow

    data = [
        {'ip':'192.168.0.2', 'model':'DES-3200-26', 'uptime': '3d 12:03:05', 'uplink state': '25: up\n26: up', 'uplink err': '0\n11', 'uplink mcast': '24560\n113'},
        {'ip':'192.168.0.3', 'model':'DES-3200-52', 'uptime': '1d 04:00:15', 'uplink state': '49: up\n50: up\n51: down\n52: down', 'uplink err': '10\n1133\n0\n0', 'uplink mcast': '5497812\n3145\n0\n0'},
    ]
    
    def set_data_for_PrettyTable(data):
        field_names = data[0].keys()
        rows = []
        for row in data:
            rows.append(row.values())
        return field_names, rows
    
    field_names, rows = set_data_for_PrettyTable(data)
    
    table = PrettyTable()
    table.hrules = 1
    table.field_names = field_names
    table.add_rows(rows)
    table.align["uplink state"] = "l"
    print(table)


    +-------------+-------------+-------------+--------------+------------+--------------+
    |      ip     |    model    |    uptime   | uplink state | uplink err | uplink mcast |
    +-------------+-------------+-------------+--------------+------------+--------------+
    | 192.168.0.2 | DES-3200-26 | 3d 12:03:05 | 25: up       |     0      |    24560     |
    |             |             |             | 26: up       |     11     |     113      |
    +-------------+-------------+-------------+--------------+------------+--------------+
    | 192.168.0.3 | DES-3200-52 | 1d 04:00:15 | 49: up       |     10     |   5497812    |
    |             |             |             | 50: up       |    1133    |     3145     |
    |             |             |             | 51: down     |     0      |      0       |
    |             |             |             | 52: down     |     0      |      0       |
    +-------------+-------------+-------------+--------------+------------+--------------+
    Ответ написан
    Комментировать
  • Для чего используется "@" перед переменными в Python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Для того, чтобы вы задали себе этот вопрос и открыли для себя пользу учебников. 61a0da3259ddf867054068.jpeg Целая глава посвящена вопросу!
    spoiler
    Эти жулики в роликах про ботов сами этот вопрос изучили, а вас не учат, а заставляют как обезьянок повторять тупые действия. Так вам и надо, неучи.
    Ответ написан
    Комментировать
  • Существует ли зрение для робота без программирования?

    @calculator212
    ну это ж бред в наше время, тратить ресурсы на такие базовые, по моему, вещи. Сам я, если что, хеловорлд на питоне или баше, ну может чуть больше.
    как по мне бред так рассуждать с знаниями "хеловорлд на питоне или баше", что-то +/- готовое есть на гитхабе.
    "робот, та херня, которую ты объехал заехав в комнату называется мяч, прикати его мне"
    Конечно люди добавят возможность распознавания речи, понимания смысла слов на русском языке, а потом отдадут это в свободный доступ в скомпилированном виде и с открытыми исходниками.
    каждый производитель робота пылесоса заново изобретает велосипед
    Они могут покупать ПО у компании специализирующейся на этом.
    Ответ написан
    5 комментариев
  • Как sys.stdin, который выглядит как словарь превратить в словарь?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Так делать нельзя:
    dict = json.loads(str(sys.stdin))
    Нужно либо так:
    dict = json.load(sys.stdin)
    либо так:
    dict = json.loads(sys.stdin.read())
    Приведите остальной код тоже. Там наверняка такие же ошибки.
    Ответ написан
    Комментировать