Задать вопрос
  • Как начертить правильный n-угольник с центром в точке (x, y) на поверхности шара?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Удобно ввести новую систему координат и потом откладывать ее базисные векторы нужное количество раз.
    Эта система будет иметь центр на радиусе сферы к центру оружности и лежать на "хорде" - плоскости в которой лежит многоугольник. В ней ваш многоугольник будет просто на плоскости.

    Из простейшей геметрии вы знаете, что этот центр координат будет на расстоянии sqrt(R^2-r^2) от центра сферы - так радиус окружности на сфере будет r.

    Первый базисный вектор будет вдоль радиуса из центра сферы к центру многоугольника и координата там будет всегда 0.
    Теперь вам надо найти еще какой-то вектор в плоскости многоугольника, а третий вектор потом найдете через векторное произведение. Хорошо бы этот второй вектор взять на север, тогда ясно куда класть первую точку по условию. Если только центр окружности не лежит строго на свере, то можно взять и спроецировать на плоскость вертикальный вектор (0, 0, 1) и все (а в противном случае проецируйте, допустим (1, 0, 0). А дальше останется только взять формулы для многоугольника на плоскости x = cos(2*pi/n*k)*r y = sin(2*pi/n*k)*r, ну и не забыть перевести все в обычную систему координат.

    Итак, пусть xo,yo,zo - точка на сфере, где лежит центр. xo и yo не нули одновременно. Еще даны R, r и n.

    Центр новых координат:
    L = sqrt(R^2 - r^2)
    x1 = xo/R*L
    y1 = yo/R*L
    z1 = zo/R*L

    Первый базисный вектор:
    e1 = (x0, y0, z0) / R
    Второй базисный вектор (нормализованный (0,0,1) - (0,0,1)*e1):
    e2 = (-x0*z0/R/sqrt(R^2- z0^2), -y0*z0/R/sqrt(R^2- z0^2), sqrt(R^2-z0^2)/R)

    третий базисный ветор, найдите сами через векторное произведение.

    А дальше координаты k-ой точки:
    p = (x1,y1,z1) +e2*cos(2*pi/n*k)*r+e3*sin(2*pi/n*k)
    Ответ написан
    Комментировать
  • Так какой же приоритет операторов == и in?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Оно равносильно записи print(5 < 4 > 3)
    или
    print(True == 0 and 0 in [0])
    Ответ написан
    4 комментария
  • Как исправить ошибку в этом коде?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Вы не смогли перевести текст ошибки?
    64250a173e58f641881098.png
    Ответ написан
    Комментировать
  • Как сделать при вводе нескольких слов через запятую, чтобы каждое слово сохранялось в переменную (количество слов не определенно)?

    @tuwkan
    Для таких вещей придумали массивы, каждое слово будет элементом массива и никак не пересекаться с другими.
    Чтобы этого достичь есть функция split
    Ответ написан
    2 комментария
  • Как в python создать interface?

    fenrir1121
    @fenrir1121
    Начни с документации
    Смотря о каком определении интерфейса речь. Если речь о формальных интерфейсах, для питона явный способ это сделать это использовать абстрактый базовый класс ABC.
    Применительно к вашему случае я бы предложил посмотреть на построители классов данных, например NamedTuple и dataclass
    Ответ написан
    2 комментария
  • Как шифровать текст в python?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    способ расшифровки должен быть непопулярным.

    А вот это уже смешно. Чем тебя не устраивают популярные способы типа RSA?
    Ты, видимо, не слышал о термине Security through obscurity , на котором обожглись многие и ты хочешь повторить их путь
    Ответ написан
    10 комментариев
  • Как сделать SQL запрос из двух таблиц?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Пока на ум приходит получить все категории, потом в цикле пройтись по ним и...

    Естественно это не делается так. Такие задачи решаются на стороне бд через джоин таблиц. Не считая ошибки синтаксиса и отсутствия лимита, запрос в ответе Vindicar подойдет. Схема хранения не самая лучшая, так как по сути у вас получается один-ко-многим (одна категория ко многим постам), и если категорий на 1 пост будет больше 1, вся структура идет в мусор. Более качественным решением все же будет многие-ко-многим между постами и категориями.
    Ответ написан
    1 комментарий
  • Как сделать SQL запрос из двух таблиц?

    Если данных в каждой категории немного - то оверхед от дублирования в каждой строке результата небольшой, и ответ Vindicar прекрасен.
    Если оверхед большой, то:
    1. получаете первым запросом категории,
    2. сохраняете в какую-то структуру, где ключом служит id категории,
    3. выбираете посты одним запросом, с фильтром по id нужных категорий,
    4. в процессе разбора результатов этого запроса, распихиваете посты сразу по нужным категориям.
    Ответ написан
    1 комментарий
  • Как написать свой компилятор?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Трансляторы
    Седой и строгий
    Содержимое этой книги в ответ не вместится.
    60b76e70c748b529799442.jpeg
    А ваш вопрос на столько общий, что короче не получится.
    Ответ написан
    3 комментария
  • Как подсчитывать на видео проходящих людей по головам?

    @rPman
    Боюсь ты не найдешь готовых решений
    Мало того, тут нужно искать размеченный датасет голов людей и радоваться этому богатству

    Решение для тебя - берешь несколько сотен тысяч видео (разные времена года), нанимаешь десяток человек в помощники и садишься размечать, затем берешь готовые решения по нейронкам, арендуешь на недельку себе кластер с gpu или на месяц другой игровую видеокарту и вперед с примерами от pytorch пилишь результат.

    Теперь советы - прежде чем работать с нейронкой, попробуй другие решения, например благодаря тому что видеокамеры у тебя не двигаются, ты можешь получать объекты через разницу дефолтной картинки и текущей (так же можно просто считать по каждому пикселу гистограмму частоты значения интенсивности во времени (лучше брать HSV а не RGB) и вычитать из текущего изображения те цвета, что дольше всего на видео (осторожно в час пик магазин может часами быть битком забитый), добавляешь сюда алгоритмы локального детекта движений (строится карта векторов по всему изображению), т.е. ты можешь с высокой точностью детектировать кусок кадра на основе видео (несколько соседних кадров) который однозначно можно считать человеком (или несколькими), и вот уже вырезая их ты можешь начинать разметку видео для нейронки

    p.s. после того как ты на все это портатишь от нескольких сотен тысяч рублей до миллионов, к тебе подойдет такой же как ты сейчас и скажет, а дай мне готовые веса твоей нейронки... куда ты его вежливо пошлешь?
    Ответ написан
    1 комментарий
  • Как работает этот код?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    context = {}
    
    last_command_use_time = context.get(user[0].id) # Возвращает время последней команды пользователя или None, если нет значения
    
    if not last_command_use_time or (datetime.datetime.now() - last_command_use_time).seconds > 10: # проверяет, что last_command_use_time  - None (т.е. данных о юзере нет) или с момента обращения прошло больше 10 секунд
    
        # команда
    
        context[user[0].id] = datetime.datetime.now() # Записывает текущее время использования команды
    
    else:
        # сообщение о том что нужно подождать

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

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

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ключевое слово await
    myvar = await myfunc()

    Ключевое слово await указывает, что при выполнении следующего за ним выражения возможно переключение с текущей сопрограммы на другую или на основной поток выполнения.
    Соответственно выражение после await тоже не простое, это должен быть awaitable объект.
    Ответ написан
    2 комментария
  • Как можно сделать виртуальную «флешку», которая будет отображаться в проводнике windows 10?

    hint000
    @hint000
    у админа три руки
    На винде есть родная (не требующая что-то устанавливать) команда subst, запускается с параметрами из командной строки и создаёт "диск" из локальной папки.
    Той же командой с другими параметрами можно удалить такой "диск".
    https://ru.wikipedia.org/wiki/Subst
    Кстати, это способ из 90-х годов, ныне почти забытый.

    Можно из Python'а выполнить системную команду.
    Ответ написан
    4 комментария
  • Можно ли эмулировать нажатие на кнопку на сайте библиотекой Бютифул суп?

    Maksim_64
    @Maksim_64
    Data Analyst
    beatifulsoup это парсер для html и xml документов. И к нажатиям кнопок не имеет никакого отношения от слова совсем.
    Ответ написан
    1 комментарий
  • Можно ли эмулировать нажатие на кнопку на сайте библиотекой Бютифул суп?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    На Авито эту кнопку сделали как раз для того, чтобы парсеры обламывать.
    Ответ написан
    2 комментария
  • Почему метод get не работает в цикле?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Вы предлагаете нам гадать тут на кофейной гуще?
    Никаких входных данных, по которым можно было бы судить о причине неработоспособности вашего кода вы не предоставили.
    Я могу перечислять возможные причины вечно!
    - может быть в index.html мало или нет данных
    - возможно вы неправильно ищете элементы в html
    - некорректно сформирована ссылка с пагинацией (кстати. почему не пользуетесь параметрами, а лепите в урл?)
    - сайт имеет защиту от скачивания тпым перебором чисел, может быть ему нужен еще какой-то формальный параметр
    - вы не находите куда сохраняется результирующие файлы из-за непонимания что такое текущий каталог
    - вы не дожидаетесь ваших 10 секундных таймаутов
    - вы не в тот каталог смотрите в поисках результатов
    - как-то не так запускаете и не видите ошибок, например с доступом.

    С учетом того, что вы даже сюда скопировали код как-то косо и косо подменили куски строк в коде на плейсхолдеры, может быть что угодно из перечисленного
    Ответ написан
    Комментировать
  • Возможно ли написать сайт на питоне?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Да. но отдавать вам придётся все равно html, просто вы его будете сами генерировать
    Ответ написан
    Комментировать
  • Как создать перемнную для каждого пользователя?

    GavriKos
    @GavriKos
    Держать массив/файл/бд с соответствием "айди юзера - группа"
    Ответ написан
    Комментировать
  • Как поменять global на return в коде? Как сделать, чтобы все сообщения от пользователя из разных функций передавались в последнюю функцию?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Зачем у вас тег JIRA в этом вопросе, если вопрос никакого отношения не имеет к ней?
    Ваша проблема в том, что вы не знаете языка, на котором пытаетесь писать. Вернее даже не писать, а исправлять что-то уже написанное.

    global - это инструкция, которая объявляет переменную в функции глобальной на уровне модуля. return - это инструкция. позволяющая вернуть из вункции значение в точку вызова.
    Вы пишете бота, и функции, задекорированные как обработчики событий от библиотеки для работы с протоколом мессенджера, не вызываются вами в коде непосредственно. Нет никакого смысла, чтобы эти функции что-то возвращали. Там, где они вызываются в недрах библиотеки их результаты не будут никем востребованы.
    Здесь использованы глобальные переменные для сохранения результатов рботы хендлеров. По-хорошему нужно создать объектный контекст для этих хначений, сохранять отдельный контекст для каждой сессии общения бота с каждым человеком, но судя по вашему вопросу, вам всё это еще рано.

    Просто правильный ответ на ваш вопрос будет не понят, или придётся объяснять с самых азов, или решать за вас вашу проблему, чему противореит суть данного ресурса.
    Тут готовы помочь, что-то пояснить, ответить на конкретные вопросы, но не делать за кого-то чужую работу и не формировать индивидуальные курсы питона с нуля. С этим надо идти во фриланс.
    Ответ написан
    Комментировать
  • Как решить ошибку RuntimeWarning: Enable tracemalloc to get the object allocation traceback?

    @igor6130
    Вы запускаете асинхронные функции как синхронные. В ошибке об этом сказано.
    Ответ написан
    3 комментария