Ответы пользователя по тегу Python
  • Как улучшить цикл for?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно при улучшении (рефакторинге) ставятся две разных задачи. Первое - это улучшение читабельности кода.
    И второе - это улучшение производительности (пропускной способности или времени отклика).

    Это две задачи на каком-то этапе противоречат друг другу. Есть график (кривая Шипилева) который это демонстрирует.
    Ответ написан
    Комментировать
  • Почему битовый сдвиг влево работает по разному в JS и Python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для python3
    >>> type(34567 << 16)
    <class 'int'>

    вот этот класс int представляет собой хитрую штуку. Это как-бы аналог целого числа бесконечно большой радрядности.

    А JavaScript там по ситуации либо int (32 bit) либо double.
    Ответ написан
  • Как научиться решать задачки на python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    По математики не силен ((

    Не переживай сильно. Для 80% современных задач разработки тебе понадобиться только школьная математика.
    Сложить умножить и процент посчитать. Всё остальное - технический дискурс что делать и как делать.

    Высокая наука ушла в области datascience, AI, quantum-computing, и всякие формальные логические (тьфу) системы где теоретики занимаются онаниз.... эээ короче фигнёй страдают.

    Что тебе понадобиться на самом деле. Структуры python. Библиотеки. Основы мульипоточки. Работа с файлами и сетью. Там не бох весть какая наука. Школьники разбираются. Вот... тут каждый день кодят дискорд и телеграм ботов.

    Еще обрати внимание на операции со строками. Строки - основа современного бизнес-кода. Сравнение строк. Подстроки. Замены. Поиск по регулярке. Это должно быть выучено как молитва. Очень часто программист хорошо умеющий работать со строками выкрутится из любой ситуации. Распарсит json и так далее вручную.
    Ответ написан
    2 комментария
  • Как перескочить в range преждевременно?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Похоже автор занимается расчетом простых чисел.

    Значить так. Четные числа - всегда - составные. Поэтому их можно даже не проверять и сразу прыгать по нечетным 3,5,7....

    Внутренний цикл не надо делать от 2 до i. Делитель 2 мы уже исключили выше. Поэтому начинаем с тройки и гоним не до n а до квадратного корня из n. Или наоборот возводим в квадрат. Тут надо понять что для Python быстрее будет. Я на С++ делал там по другому.

    Для более глубокой оптимизации все найденные простые - пишутся в array и участвуют во внутреннем цикле как делители. Это еще быстрее.
    Ответ написан
    Комментировать
  • Правильно ли передавать в метод список, и изменять его внутри?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Этож не Хаскель. Значит можно.

    Python вроде только tuples запрещает мутировать. Мне кажется что тут более важный вопрос о конвенции. И о том как на это смотрит команда разработки. Если команда договорится что не мутировать сущности а создавать копии - то делайте так.
    Ответ написан
    Комментировать
  • Как применить допуск погрешности при сравнении двух чисел?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно придумывают некую величину эпсилон EPS которая будет слишком маленькой в рамках
    решаемой задачи. Например если ты считаешь расстояние от земли до марса - то плюс-минус 1 метр
    для тебя не имеет значения. Тогда у тебя эпсилон == 1.0

    У тебя будет что-то вроде abs(x1 - x2) < EPS && abs(y1 - y2) < EPS.
    Ответ написан
  • Сможете проверить правильность решения моего задания?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут по сути к а прибавляется b помноженная на знак (сигнум) разности a и b.

    Можно попробовать переписать так.

    a = int(input("a = "))
    b = int(input("b = "))
    c = c + b * numpy.sign(a - b)
    print(c)


    Я не проверял.
    Ответ написан
    8 комментариев
  • Как реализовать сортировку без приоритета?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ты придумал какую-то фигню которая в алгоритмах и структурах данных не существует. Существуют очереди с ПРИОРИТЕТАМИ. Но то что ты делаешь это обычная сортировка по ДВУМ полям. Где у тебя есть свой компаратор.

    Читани здесь https://www.delftstack.com/howto/python/python-com... и здесь https://stackoverflow.com/questions/12749398/using...
    Ответ написан
    Комментировать
  • Как выводить значения, создавая таблицы через пробел?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Этот вопрос вообще к SQL не имеет отношения. Если к тебе пришел список аргументов как строка разделенная запятой (comma-separated) - то сделай из нее коллекцию атомов. Допустим 3 штуки. И сделай в цикле 3 операции insert. Кажется тут нет никаких трудностей.
    Ответ написан
    6 комментариев
  • Какой split использовать, чтобы прочитать числа?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У тебя - типичный csv файл. И не нужны тебе там никакие скобочки и двоеточия. Делай проще.

    101; 657; 821; 622; 843
    102; 696; 874; 709; 1000

    такой файл и в Экцель открыть можно и в базу загрузить потом без бубна.
    Ответ написан
    Комментировать
  • Как написать рег. выражение для поиска по паттерну: число часов/час число минута/минуты?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не напасёшся регулярок на все фантастические форматы времени.

    Ты вот уточни ты чаще хочешь распознать ложное время или пропустить верное?

    Я вот вижу что 3 позитивных кейса где время распознано - состоят просто из 2-3 чисел разделенных просто символами.

    сейчас 16 часов 26 минут
    9 час 10 минут
    4 часа 3 часа 22 минуты


    Вот просто взять

    \d+....\d+....(\d+)? и

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Медиафайлы - это очень широкое понятие. Надо уточнить. Но для сбора информации о картинках можно брать библиотеки поддержки exif https://pypi.org/project/exif/

    С помощью exif можно излвлекать из jpg картинок информацию о размере. И возможно о устройстве которое фоткало. Может гео-координаты если таковые писались. И прочая техническая инфа.
    Ответ написан
  • Как правильнее написать такую проверку?

    mayton2019
    @mayton2019
    Bigdata Engineer
    before_gray = cv2.cvtColor(before, cv2.COLOR_BGR2GRAY)
    after_gray = cv2.cvtColor(after, cv2.COLOR_BGR2GRAY)

    Вот красавец. В базисе серого цвета идет сравнение.

    А если я радугу буду сравнивать? Твой-же алгоритм слепой в этом смысле.
    Ответ написан
  • Как можно вычислить тип?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну ты почти все правильно написал. Только лишний кастинг не нужен.

    if isinstance(message.text, int):
    Ответ написан
  • Какой самый легкий путь для создания модели с помощью машинного обучения?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дело в том что рынок "машинного обучения" сильно перегрет. Каждый newcomer решает любую задачу маш-обучем даже если ему надо сложить 2 + 2. Я не шучу это действительно так. Доходит до смешного. Там где нужен фильтр низкой частоты или расчет арифметического среднего все пытаются втащить методы которые на два порядка сложнее и энергозатратнее.

    По поводу вопроса. Допустим ты играешь в PacMan (желтый колобок который кушает белые точки на черном фоне) и ты хочешь просто найти пакмана - то тебе достаточно к примеру уменьшить размер экрана в 32 раза и тогда колобок станет размером в 1 пиксел (я предполагаю что он был размером 32 на 32). При усреднении цвета - брать max. Между черным и желтым - всегда выбирать желтый. Далее после того как колобок найден на мелком поле - и известны его координаты - можно двигаться в обратную сторону увеличивая масштаб. И за 5 итераций найти точные координаты ПакМана. В моём алгоритме вобщем-то нет никакого opencv. И я утверждаю что мой алгоритм менее ресурсоёмок чем все прочие подходы.

    Впрочем это - просто идея. Ее можно бесконечно упрощать или улучшать. Возможен кейс когда враги скушали пак-мана и он будет плохо распознан моим методом. Вобщем есть огромное пространство для фантазии и алгоримизации без машинного обучения.
    Ответ написан
    2 комментария
  • Бот не отправляет переменные?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это не будет работать. Последнее несколько чисел в номере карты - контрольные. Они страхуют ввод номера карты от опечаток. Посмотри что такое алгоритм Луна.

    И первые несколько цифр показывают обычно код банка и код платежной системы (Viza, Maestro). Нагуглишь сам.
    Ответ написан
    Комментировать
  • Кто знате в чем проблема с SQLite3?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно на пустоту (None) проверяют так.

    if USERDATA is None:
    Ответ написан
    Комментировать
  • Каким образом посчитать большое кол-во чисел после запятой?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У Python 2.x, 3,x были разные формы представления числа типа int.

    Поэтому я бы выбирал тот тип данных который даёт arbitrary precision.

    Разумеется плавающая точка здесь не помощник.
    Ответ написан
    Комментировать
  • Нужно нагрузить сеть?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть много способов устроить нагрузочное тестирование. Как вариант - приложение JMeter https://jmeter.apache.org/

    При чем здесь Wifi - непонятно. Обычно тестируют приложение а не частные куски сетей.
    Ответ написан
    Комментировать
  • Как сделать непадающий telegram bot?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Техно-стек Erlang/OTP считаеться эталлоном надежности. Акторы. Супервизоры.

    Вот изучи новый язык. Хорошая мотивация уже есть :)
    Ответ написан
    Комментировать