Задать вопрос
  • Как составить условие на вывод блока в определенные дни на php?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Получаете дату -> проверяете -> обрабатываете значения.
    Однако учитывайте, что c данный подходом можно узнать только серверное время работать по нему. Юзер же может быть где угодно, хоть в другом полушарии, где совершенно другое время. Если нужно учитывать именно пользовательское время получайте дату-время через js и шлите на сервер/показывайте через него-же.
    (однако этот подход куда более уязвим к "взлому", т.к. пользователь спокойно может поменять время у себя на пк. Не сильно - ибо при больших отклонениях сайты с ssl, если не ошибаюсь, блокируют доступ)
    Ответ написан
    Комментировать
  • Как перевести код с Pascal на Python?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Как перевести код с Pascal на Python?

    Используя синтаксис и встроенные функции (смотреть в офф.доках / "шпаргалке") написать соответствующий код.

    ---
    Допускаю, что найдется кто-то, готовый за вас делать ваши задания, и напишет код, но в текущем виде, поскольку вы не привели попыток решения, вопрос фактически является заданием. А про задания четко написано в п.5.12 правил.
    upd:
    Самые очевидные ошибки
    from math import sqrt
    
    for i in range(289123456, 389123456+1):
        sqrtIT = sqrt(i)
        numDel = 0
        if (round(sqrtIT)) == sqrtIT:
            maxDel = 1
            for j in range(1, round(sqrtIT)): # Раз ошибка
                """
                    Собственно, первый цикл 'for i := 289123456 to 389123456 do begin' вы переделали правильно, почему второй так сделали - непонятно
                """
                round(sqrtIT)
                if (i % j == 0):
                    if maxDel == 1 and j != 1: # вторая ошибка. В питоне - не равно пишется так: !=
                        maxDel = i // j # Еще одна ошибка (из коментов)
                    if (j != round(sqrtIT)): # третья ошибка
                        numDel += 2
                    if j * j == i:
                        numDel += 1
            if numDel == 5:
                print(i, ' ', maxDel)
    Ответ написан
    2 комментария
  • Как правильно вызвать функцию?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    1. Зачем тут цикл? Return всегда завершает выполнение функции/метода. Т.е. после первой итерации цикл гарантированно прервется. Если вы так проверяете наличие элементов в списке, то стоить как минимум на if.
    2.Что значит подключить ?
    Нужную функцию можно вызвать внутри другой функции и работать напрямую с возвращаемым значением или с переменной, в которую предварительно передается это значение.
    Можно передать значение в качестве аргумента.
    Ответ написан
    2 комментария
  • Ошибка синтаксиса, как исправить?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Может, для разнообразия вы будете читать текст ошибки?
    if player1 == 0:                 #ошибка синтаксиса в этой строке
    IndentationError: expected an indented block after 'while' statement on line 61

    Тут три варианта:
    Вы не в состоянии прочитать/осмыслить ошибку
    Вы не в состоянии перевести ошибку (даже имея под рукой интернет с кучей переводчиков)
    Вам лень систематически изучать даже основы языка, в которых сказано, что python отсупозависимый.
    Для первых двух пунктов, увы, решения нет. Для третьего - взять волю в кулак и не просто тыкайся, в надежде найти полезный кусок знания, а найти нормальный источник (Например книга Марка Лутца) и учится по нему
    Ответ написан
    Комментировать
  • Как правильно создать модели Django для чеков?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Обычно минимально-рабочая схема следующая:
    Товар: описание конкретного товара (цена, характеристики и прочее)
    Заказ: Описание заказа как такового - дата-время/покупатель/статус/возможно - общая цена.
    Список товаров в заказе: в минимальном наборе - внешние ключи к товару/заказу и количество.

    "Корзина" может быть реализована 2-мя путями (минимум):
    Прямо в таблице заказов. При этом такой заказ будет помечен статусом по типу "оформляется" и будет ограничение "1 юзер (кассир?) - 1 оформляющийся заказ"
    С помощью сессии
    Ответ написан
    2 комментария
  • Можете помочь с Telegram ботом?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Где-то лишний/пропущенный отступ, либо где-то затесался таб, вместо пробела (или наоборот).
    Т.к. полный текст ошибки вы не привели - ищите нужную строку сами.
    Ну и да - подобный подход - неверен.

    try:
       ...
    except Exception as e:

    Чисто с точки зрения синтаксиса все ок, но "хорошим тоном" - является использование не общего исключения, а максимально конкретного, а базовое использовать "по остаточному принципу" (сперва конкретные, потом, если возможны какие-то другие, но специфической обработки не нужно - базовое)
    try:
       ...
    except (SomeException, SomeOtherException):
        print('Обрабатываем какое-то исключение и еще какое-то исключение одинаково')
    except SomeThridException:
        print('Обрабатываем какое-то третье исключение')
    except Exception as e:
        print('Обрабатываем все остальные ')
    Ответ написан
    Комментировать
  • Как сделать 2 условия в sqllite python?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Это нужно делать на уровне sql запросов. Как? Для начала - просто изучите sql. То, что вам надо - буквально основы, описанные в первых разделах. Без их знания будет очень сложно.
    Ответ написан
    2 комментария
  • Как сделать таймер на бд sqlite3?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Как сделать таймер на бд sqlite3?

    sqlite3, как и любая другая база данных, просто хранилище данных. Как уже сказали в комментариях - реализовывать нужно средствами языка.
    Самый простой и наименее затратный с точки зрения ресурсов, вариант - высчитывать добытый уголь при проверке баланса.
    В общих чертах схема следующая:
    юзер "покупает шахту" (т.е. начинает игру), в базу записывается дата и время.
    При вводе соответствующей команды (например /склад) из базы берется время последнего обращения (для только-что начавших - пусть это будет время "покупки") и сравнивается с текущим. На основе количества пройдённых часов увеличивается баланс.
    При этом актуализировать баланс нужно будет не только при "проверке" пользователем но и как минимум при расходных операциях, учитывайте это.

    Второй вариант - используйте модули shelude / aioschedule (для синхронных/асинхронных ботов, соответственно). для ежечасного обновления. Однако учитывайте, что это потребует большего количества ресурсов.
    Ответ написан
    1 комментарий
  • Пишу бота для телеграм (telebot), проблема с асинхронными функциями. В чем причина ошибки?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Если вы дадите какие-то совесть по оформлению или синтаксу кода, я буду вам нереально благодарен.

    Мне вот интересно, вы ищите "советы" по каким-то вещам... Почему вам даже не приходит в голову поискать в офф.документации?
    Как правильно писать то, что вы пытаетесь сделать там описано.
    я тот же sqlite выучил за 1 день

    Не очень похоже. То, что вы посмотрели, уж извините, говноролик* по типу "хреначим бота из палок и ..." не значит, что вы изучили что-то.
    Конкретно - проблема в подобных выражениях:
    cursor.execute(f"INSERT INTO {table}({columns}) VALUES ({values})")

    Писать что-то подобное, тем-более в системе, с которая будет доступна другим людям в интернете можно только в случаях, когда вы целенаправленно хотите словить sql-инъекцию.
    Изучайте основы по документации. По крайней мере какие-то базовые вещи там описаны максимально подробно и даже если вдруг не знаете английский - примеров столько, что даже без чтения понятно.
    --
    * - тут больше вопрос к автору сего творения, который мало-того, что сам не пойми как учится, так еще и путает других.
    Ответ написан
    1 комментарий
  • Какие есть аналоги Mysql, без запуска отдельного сервера под него?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Ответ написан
    Комментировать
  • Как выводить ошибку если в тексте больше 3 слов?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Разделить строку по пробелам и посчитать количество элементов.
    В первом приближении это будет работать.
    Дальше разные плюшки вроде удаления пробелов по краям и т.д.
    Ответ написан
    Комментировать
  • Ошибка создании таблицы в SQLLite3 Python. В чем причина?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Проблема в порядке определения полей/ограничений - sql требует строгого порядка:
    1. определение полей
    2. определение ограничений (опционально)
    3. определение внешних ключей

    Т.е. сперва описываете все поля и только после - указываете блоки FOREIGN KEY
    Ответ написан
    1 комментарий
  • Счетчик количества людей?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    • С помощью значений в базе данных.
    • С помощью сторонних метрик (например от яндекса).
    Ответ написан
  • Почему при попытке прочитать json файл выдается исключение (python)?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    У вас, скорее всего, JSON неправильный. По идее - там что-то вида:
    {
     ...
    },
    {
     ...
    }

    Т.е. просто несколько объектов, разделенных запятой (или вообще без них)
    В то время как правильный json должен состоять либо из одного объекта, либо из списка объектов:
    [
      {
       ...
      },
      {
       ...
      }
    ]

    Возможно - поможет добавление квадратных скобок, но без примеров (копировать сюда всю портянку (если там больше 20-30 строк) не советую. 2-3 объекта с сохранением структуры будет достаточно) большего посоветовать не получится
    Ответ написан
  • Как узнать загрузилась ли страница PHP?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Бекэнд в целом и PHP в частности не знает и не может знать, что происходит у клиента в браузере. Он просто "лежит" на сервере и по требованию отдает данные.
    Отлавливать события в браузере, в т.ч. и загрузку, может JS. Смотрите в его сторону
    Ответ написан
    3 комментария
  • Как можно преобразовать такую строку в читаемые данные?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Выглядит как параметры url.
    В остальном - может помочь разделение:
    $pizza  = "name=222&email=444&message=ghjkghjk&agree=on";
    $pieces = explode("&", $pizza);
    print_r($pieces) // Array ( [0] => name=222 [1] => email=444 [2] => message=ghjkghjk [3] => agree=on )
    Ответ написан
  • Как лучше сделать бота в телеграме?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    От моего сервера запрос идет... эээ, либо боту на мой сервер, либо на api.telegram.org?

    Не работал с TG-ботами, но знаю, что их можно писать с использованием Flask, который в свою очередь является веб-фреймворком, написанном на python. Следовательно "сигналы" из игры можно реализовать путем отправки http-запросов на flask.
    Вот пример на хабре.
    По поводу вопросов:
    1.В целом - +/- вменяемая.
    2.Да, по идее - циклом.
    3.Маловероятно. Все-таки ТГ довольно популярный мессенджер и 100 пользователей это ни о чем.
    4.В общем случае - оптимальным вариантом будет аренда VDS. Телеграмм сервера не предоставляет, насколько я знаю. По поводу Local Bot API не знаю.
    5.Оптимальный вариант - сохранять их в базу данных. Id`шники пользователей получаются сразу-же при первом взаимодействии с ботом. Как получить id групп не знаю. Возможно есть событие вроде on_join, которое срабатывает при приглашении бота. Не уверен, что оно есть - смотрите в доках. Если его не будет, нужно заставить реагировать на пользовательскую команду.
    upd: Да, как написали в коментах - единый канал будет в разы проще с точки зрения реализации.
    Ответ написан
    Комментировать
  • Как исправить код что бы сработал модуль keyboard python?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Вас не смущает, что вы импортирует модуль и через строчку переопределяете данное имя?
    import keyboard
    from turtle import*
    keyboard = Turtle()

    Далее вы настраиваете вашу черепашку, обозначенную как "клавиатура". Странно, но ок.
    keyboard.color('blue')
    keyboard.shape('turtle')

    После чего в цикле вы ждете, как я понял, нажатия на единицу, при помощи метода wait() из модуля keyboard. Проблема в том, что у вас keyboard это Turtle()
    while True:
        keyboard.wait("1")
        keyboard.fd(30)
    exitonclick()
    Ответ написан
    Комментировать
  • Как правильно использовать lambda выражение?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Вместо filter()используйте map()
    плюс добавьте значение по умолчанию для .get(), чтобы функция не спотыкалась на None
    Ответ написан
    Комментировать
  • Как сделать игрового бота в телеграмм?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Для начала - боты довольно сложная вещь. Без знания основ языка написать что-то нормальное у вас не получится.

    Библиотеки (основные):
    • Pytelegrambotapi
    • Aiogram

    Для хранения данных - база данных.
    В из коробки python есть поддержка sqlite, для остальных баз есть сторонние библиотеки.

    Примеры кода есть в документации/github-репозиториях библиотек. Кроме того, есть куча видосов на Ютубе. Впрочем, как минимум взаимодействие с базой советую изучать строго по документации (ну или как минимум почтить, что такое sql-инъекции и как их избежать)
    Ответ написан
    3 комментария