Ответы пользователя по тегу Python
  • Как узнать координаты второго отрезка вектора зная его длинну и начальные координаты?

    @MusArtVlad
    Новичок в программировании
    Вариант первый
    Персонаж (А) стреляет в мышь (Б)
    Вектор АБ = Б(x,y)-А(x,y) = [Б(х)-А(х); Б(у)-А(у)]
    Тебе надо заранее знать координаты А и вычислять координаты мыши (Б)

    Вариант второй
    Зная угол и расстояние
    Например:
    А стреляет на 30°, расстояние 8
    Тут подходят решения треугольников.
    Например, А(х,у) лежат на 0, тогда: гипотенуза треугольника равна 8, углы 30, а также прямой (90), противолежащий гипотенузе. Узнаем 2 угол автоматически (60) по правилу 180-90-30
    И вычисляем координаты точки (8*cos30 и 8*cos60).
    Координаты 6,9 и 4. Это будет твой вектор
    Ответ написан
    Комментировать
  • Как изучать машинное обучение?

    @MusArtVlad
    Новичок в программировании
    Изучаешь те инструменты, которыми пользуются другие компании.
    Идёшь на рекрутинговый сервис и смотришь объявления по машинному обучению.
    Там будут писать ЯП, которые надо знать, а также библиотеки, требуемые на работе.
    Так ты сможешь понять, какие библиотеки используются и для каких задач.
    Ответ написан
    Комментировать
  • Aiogram как отправить музыку без сохранение на диск?

    @MusArtVlad
    Новичок в программировании
    Используй встроенный в Linux FFMPEG
    Или установи его себе на PC
    Вот команда для командной строки:
    ffmpeg -f avfoundation -i ":1" -t 10 -f mpegts "tcp://хост_или_ip_адрес_удалённого_пк(то_что_будет_прослушивать):порт"
    Затем настраивай другой сервер или что-то ещё на получение потока. Смотри, как бот отнесётся к потоковой передаче аудио в формате MP3. В Discord есть музыкальные боты и они могут транслировать музыку. Но не смогут её побайтово сохранить.
    Как в Telegram обстоят дела - не знаю. Возможно, лучше. Может быть хуже.
    Для твоих целей подойдёт ffmpeg. Позволяет стримить аудио и видео файл, не сохраняя его на PC. Для твоих целей не использовал
    Ответ написан
    3 комментария
  • Как достать переменную из функции?

    @MusArtVlad
    Новичок в программировании
    Ты можешь забрать переменную таким образом.
    у тебя при каждом вызове любой функции будет рандомное число
    При этом если ты выполнишь test_sum_v1(), то получишь одинаковые переменные и туда и обратно. Но только через Return
    from random import randint
    def gen_random_num_v1():
        num1 = randint(1, 100) # генерерирует число
        return num1 # генерерирует число от 1 до 99
    
    def test_sum_v1():  # Первая версия
        print(gen_random_num())  # Забирай
    
    print(gen_random_num_v1())  # выводит 32
    print(test_sum_v1())  # выводит 67

    Это другой способ, через глобальные переменные
    у тебя при каждом вызове любой функции будет именно то число, которое сгенерировало gen_random_num_v2()
    Но тебе надо сначала получить переменную num1. То есть могут возникнуть некоторые ошибки.
    from random import randint
    
    def gen_random_num_v2():
        global num1 # генерерирует число
        num1 = randint(1, 100) # генерерирует число
        return num1
    
    def test_sum_v2():  # Вторая версия
        print(num1)  # Забирай
    
    print(gen_random_num_v2())  # выводит 73
    print(test_sum_v2())  # выводит 73
    Ответ написан
  • Как сделать веб-интерфейс для управления скриптом?

    @MusArtVlad
    Новичок в программировании
    несколько вариантов:
    1. Django — удобный, понятный, легко работать. Собственная структура и шаблонизатор. В любом случае работаешь через связку BackEnd — Front
    2. Flask — легковесный, простой, легко работать. преимущества почти те же, что с Django
    3. JS — Какая разница, через какой язык отправлять данные на Back питона? Лёгкий. Нет необходимости использовать шаблонизатор. Честно берёт и отправляет данные с фронта на Backend и забирает с бэка ответ обратно. как раз на твой скрипт. Много примеров работы этой связки.
    4. Html+Css form — без JS. Чисто формой. Доступ у других людей будет. Но ты сможешь сделать вход по паролю без проблем.
    Пример отправки формы на Python без обратной связи
    import requests
    # Если нужны Header → from requests.structures import CaseInsensitiveDict
    
    url = "https://qna.habr.com/q/1139382"
    
    # Сюда вставляешь Headers, если надо.
    # headers["Authorization"] = "PtrGrd"
    # headers["Content-Type"] = "application/Chrome, например. Или что там пишется"
    
    data = "name=PtrGrd&password=qwerty123&yetanother=123"
    
    
    resultat = requests.post(url, headers=headers, data=data)
    
    print(resultat.status_code)


    Если держать на локальной машине, есть смысл запускать только js или html.
    На сервере — доступ через авторизацию к скрипту. И управлять своим скриптом через форму. Это проще всего и быстрее.
    если знаешь фласк или джанго - можешь и их использовать. Только не утяжелишь ли ты проект? Нам бы цели и масштабы. А то может тебе понадобится Vue.js

    Если надо получать «обратную связь», то используй Flask.
    Вот пример:
    Html:
    <html> <!-- index.html -->
    <body>
        <p>Время срабатывания скрипта: {{ time_to_start }} секунд</p>
    </body>
    </html>

    Python:
    from flask import Flask, render_template
    
    app = Flask('Mega')
    
    @app.route('/')
    def index():
        tts = 60
        return render_template('index.html', time_to_start=tts)
    
    if __name__ == '__main__':
        app.run()
    Ответ написан
    6 комментариев
  • Какой хостинг для дискорд бота использовать?

    @MusArtVlad
    Новичок в программировании
    Посмотри хостинг, поддерживающий django. ты можешь запустить любой .py скрипт на нём, в том числе и бота для discord. В основном на таких хостингах эта услуга называется «CGI-скрипты»
    Разумеется, что VPS лучше

    варианты:
    https://webhost1.ru/help/generic/cgi
    https://help.reg.ru/hc/ru/articles/4408047456785
    Лично я пользуюсь Beget — https://beget.com/ru/hosting/virtual
    (Статья по установке Python: https://beget.com/ru/kb/how-to/web-apps/python)

    А на хостинг инфо и других подобных сайтах ты можешь использовать поиск по ЯП
    Ответ написан
    Комментировать
  • Как отфильтровать строку?

    @MusArtVlad
    Новичок в программировании
    как насчёт варианта isdigit()? и при «False» выведи ему «Укажи только цифры»
    Но это такая себе идея. Более правильный вариант — использовать маску, (подставлять все цифры пользователя на нужное место) или просить пользователя прислать свой контакт, и из контакта по API дёргать нужные тебе значения

    15 символов, с учётом пробелов:
    1. Поставь ограничение ввода на 15 символов. Принимай первые 15 символов, например
    2. убедись, что '+' в строке нет (if '+' in phone:)
    3. Если + есть, то смотри телефон со следующей от него цифры. Можешь пользоваться поиском по индексу, например. Если плюса нет, тогда от первого символа.
    4. Проверяй первые 2 цифры после +375 на соответствие (phone[0:2] in ['25', '44', '33', '29', '17']). Если не соответствует, отправляй ошибку
    5. Проверяй последние 7 цифр. Если их меньше, указывай ошибку. Если их больше, отправляй ошибку.

    Вариантов, конечно, много

    Можно отсплитить по пробелам и сджойнить и т.д.
    Ответ написан