Ответы пользователя по тегу Python
  • Какой выбрать Python фреймворк для системы парсинга сайтов?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Scrappy

    Из минусов :
    * Сложность установки на системе Windows. Поэтому один раз нужно будет поставить . Задокументировать процесс установки.
    * У меня были проблемы с кодировками, но это возможно у меня что-то с руками было. Обратите на это свое внимание

    Из плюсов:
    * Многим известен
    * Структурирован
    * Много информации по нему
    Ответ написан
    3 комментария
  • REST API. Какой Python-фреймворк выбрать для бэкэнда? Каким пользуетесь вы?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Рекомендую посмотреть на aiohttp. Его пилит один из python core-девелоперов у которого руки в правильном месте. Идея использования на основе Flask. Только Flask хоть и адски удобный,но не асинхронный!
    Ответ написан
    7 комментариев
  • Как этот код реализовать в python?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Если у вас такое желание возникло, значит вы пишите гуан-код в этом месте!

    В случае появления желании использовать переменную, но уже чуть чуть в другом контексте это значит программист не улавливает, что он пишет ДВЕ задачи в одной функции!

    Есть правило: Одна задача - ОДНА функция!

    Спросите, а чем отличается текущее использование number после того как было "закрыта" область видимости при прошлом использовании? Именно ответ на этот вопрос даст вам более правильное название переменной!
    Ответ написан
    Комментировать
  • Почему не переходит на страницу после submit()?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Попробуй поставить 5-6сек в time.sleep() между строчками:
    driver.find_element_by_id("password").send_keys("Password123")
            driver.find_element_by_id("allow").submit()
    Ответ написан
  • Как грамотно распараллелить обработку большого количества файлов?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Что рекомендую почитать :
    1. Что такое CPU bound, IO Bound, Memory Bound?
    2. Что такое GIL ?

    Если кратко, то:
    1. В Python-е "мультипоточность" решается в различных процессах, из-за п.2
    2. Знайте свою ситуацию как можно лучше!
    Если у вас все упарается в IO, к примеру много запросов от пользователей, то это одно. А если очень большой вычислительный процесс, к примеру подбор пароля, накладывание защиты, виртуализация кода и т.д. и т.п. это другое.

    Программисту достаточно часто приходится регулярно жертвовать чем-либо, чтобы что-то другое стало по-лучше. К примеру памятью лишь бы ЦПУ сэкономить, либо ЦПУ чтобы IO было по-круче.
    Ответ написан
    3 комментария
  • В чем разница между Requests и Selenium?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Selenium это управление браузером используя webdriver. А Request это библиотека. Чем запущенный Google Chrome лучше чем Request? Да их сравнивать не нужно, это разное!

    Об этом на selenium2.ru прямо первой строчкой указано"Selenium -- это инструмент для автоматизированного управления браузерами."

    Когда вы используете Selenium вы пишите код по управлению драйвером. Да, вы можете это сделать на Python, но ведь можете и на любом другом языке.
    Ответ написан
    Комментировать
  • Python без Django etc, что остается в итоге?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    >>но питон обычно интересен в веб разработке
    Ошибаетесь!
    Этот язык в вебе далеко не в mainstream.
    Но достаточно прочно удерживается свою позицию в топ-5.

    Его применяют при решении разногого рода задач, а не только в вебе. К примеру:
    * Reversing engineering. Вот топ-инструментов для реверсера IdaPython, IdaHiew, pykd(плагин для WinDbg)
    * Системное администрирование. Для админа или bash или python это не заменимая вещь!
    * Программы с GUI: К примеру Sublime Text слышали?

    А если уж вебом решили заняться, то сейчас мне кажется нужно смотреть не в сторону Django+Python, а в другую сторону JavaScript+NodeJs.
    Ответ написан
    9 комментариев
  • Как понять рекурсию в Python?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Прежде чем изучать рекурсию поймите сначала рекурсию.

    Рекурсия это способ решения задачи путем ее упрощения до такого состояния, когда задачу уже можно взять и решить, а не упрощать.

    Вам уже привели пример со степенью:
    2 ^ 2
    Известно что если упростить до:
    2 ^ 0 , то мы должны получить результат 1
    Вот и упрощайтее задачу возведения в степень до того, чтобы текущий показатель степени стал равным 0.

    def pow(num, n2):
    1 if n2 == 0 else num * pow(num, n2-1)


    И да, рекурсивно полезно мыслить. Не забрасывайте попыток разобраться.
    К примеру обход деревьев куда проще рекурсивно , чем в виде итеративного решения.

    Также, рекомендую почитать SICP. Эта книга дает ясное понимание между двумя нюансами по поводу рекурсии, о которых не каждый программист знает. Пример задачи : Напишите рекурсивную функцию вычисляющую факториал итеративно. Еще раз обращу внимание на формулировку: функция рекурсивная, а вычислить итеративно! Все это не бред и вполне логично, подробнее в SICP
    Ответ написан
    Комментировать
  • Ветки развития. Куда бы вы пошли из helpdesk?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    >>В последнее время ходят слухи, что ветка развития админа тупиковая, якобы там нет больших зарплат и вообще это всё для студентов
    С такими рассуждениями нигде хорошо зарабатывать не сможете.

    Платят не за популярность профессии, а за решение проблем! Но конечно же нужно на собеседовании спрашивать в лоб: "Вы платите за результат или за жопо-часы?".

    Есть два основных типа работодателей:

    Тип работодателей №1:
    На собеседовании говорят, что им важен результат. На деле, как только специалист справляется со своими задачами и начинает заниматься своими, к примеру фриланс-заказы, то начинаются обиды. Якобы он мог бы подойти и спросить чем бы еще занять. Это подход в НИКУДА.

    Тип работодателей №2:
    Также говорят, что им важен результат. На деле все так и есть. Если за день не осилил и не сделал дневную норму, то хоть ночью оставайся или бери работу на дом.

    На мой взгляд стремиться нужно ко второму типу работодателей. Это более честные рыночные отношения.
    При общении с таким типом работодателей нужно ЗАРАНЕЕ договариваться об объеме работы на день\неделю и четко осознавать, что может человек, а что нет. При таком договоре человек выигрывает в том, что если он научился справляться быстрее, то может заниматься своими делами зная, что никто не будет хавать мозг. А если начинают, то можно поднять наверх договоренности и задавать вопрос в ЛОБ. Что собственно мною и применяется. Есть вероятность, что некоторые отсеются, но разве у Вас есть задача нравиться всем? Но по мне так лучше сразу отфильтровать дебилов и работать с вменяемыми людьми.

    Из всего этого вывод один: Чем бы вы не занимались, лишь бы были виртуозом и всегда развивались. На одном месте можно заниматься многим и при этом честно выполняя свою работу. Всегда можно что-то автоматизировать, зарефакторить, улучшить или еще что-то, чтобы нагрузки по текущей работе было меньше и менее стрессово
    Ответ написан
    2 комментария
  • В каком формате хранить данные (мелкий конфиг) в python?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Ну для python уже есть формат для конфигов: это встроенный тип dictionary.

    Вы же пишите код на Python и только на нем. За пределами же конфиг ни где не будет использоваться, тогда зачем еще какие-то форматы, когда можно воспользоваться его родными типами?
    Ответ написан
    Комментировать
  • Можно ли выучить python с помощью приложения учим python с практикой?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Любой язык прораммирования учится путем решения РЕАЛЬНЫХ задач. Берете свою деятельность не важно где, на работе, дома, в хобби и пытаетесь ее улучшить! По путно возникает множество вопросов и вот ответы на них формируют ваш опыт
    Ответ написан
  • Как в python извлечь корень?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Не совсем понятно, что вы ищите? Толи готовую функцию, толи понять как в принципе работает алгоритм? Для готовой из стандартной либы,вам уже написали. А про алгоритм, вот:

    def sqrt_r(number, precision_factor=0.0001):
    	def square(n):
    		return n * n
    	def good_enough(guess, number):
    		return abs(square(guess) - number) < precision_factor
    	def improve(guess, number):
    		return ((number/guess) + guess) / 2
    	def sqrt_iter(guess, number):
    		return guess \
    			if good_enough(guess, number) \
    			else sqrt_iter(improve(guess, number), number)
    	return sqrt_iter(1.0, number)
    Ответ написан
    3 комментария
  • Как обучиться werkzeug?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    На мой взгляд занимаетесь не тем чем нужно!
    Вам не нужно изучать чистый werkzeug чтобы быть хорошим веб-девелопером.

    Веб-девелоперу сейчас оооочень много нужно знать: это очереди, это и несколько веб-фреймворков, это и умение писать мониторинги для оценки загруженности очередей, это и ORM и умение писать качественные запросы в БД. А ко всему прочему желательно неплохо понимать JS и несколько к нему фреймворков.

    Вы это уже все знаете?
    Ответ написан
  • Как преобразовать строку из символов в целое число?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    b = '\x01\x00\x00\x00'.encode()
    struct.unpack('<L', b)[0]


    Может быть это вам надо?

    или это:
    int.from_bytes(b, byteorder='little')
    Ответ написан
  • Какие решения есть для определения версий библиотек?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Можно воспользоваться Requirements Files. В таких файлах можно указать точную версию, или старше указанной или не старше указаной. А можно вообще версий не указывать, а просто указать имена пакетов и тогда будут ставиться только самые последнии версии.

    Установленная среда "замораживается" командой: pip freeze
    Ответ написан
  • Как выбрать открытый проект на Python для поддержки?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Вливайтесь в сам проект по развитию Python-а. Там же много работы: Перевод, документация, библиотеки, CPython и др. Да. Сразу будет жесть как тяжело, но зато потом, потом будет такая визитная карточка, что достаточно быстро будете находить новую работу.
    Ответ написан
    2 комментария
  • Как присвоить переменной анонимную функцию?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    >>> fn1 = lambda n1, n2: n1+n2
    >>> fn1(2, 4)
    100500
    Ответ написан
    2 комментария
  • Какие сервисы есть для обсуждания кода на Python?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    2. Тостер это место для конкретных вопросов, а автор спрашивает о вопросах ведущих к дискуссии! Ни SO ни Toster для этого не подходят.

    Артём Иннокентьев: Это поле еще не особо занято, это Вам идея для бизнеса ;) Ранее это поле было занято форумами. А сейчас это решение не подходит под современные реалии
    Ответ написан
    Комментировать
  • Как правильно форматировать строки из словаря?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Настя Мяу: Правильный ответ Вам дал ув.тов. Александр !

    Он сказал, что Вы используете Python 3, а автор книги использует Python 2.

    Суть в том, что в 2-ке инструкция print это часть языка и является языковой конструкцией. А в 3-ке это не часть языка и не языковая конструкция, а функция. Синтаксис функций всегда был с круглыми скобками. Вам даже компилятор сказал, что у Вас какой-то беспредел с "parenthesis" в вызове 'print'.

    P.S.:
    В мире Python-разработчиков существует два лагеря "Любители 2-ки" и "Любители 3-ки". При этом есть множество кода написанных как с применением 2-ки, так и 3-ки. Есть также много систем, где извращенцы написали часть системы на 2-ке, а часть на 3-ке. Поэтому как будущему Python-программисту нужно уметь программировать и в том и в другом мире.
    Ответ написан
    Комментировать
  • Подойдет ли для фриланса Python по Марку Лутцу?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    В 14 лет не стоит заниматься "взрослым" миром. Зачем? Многие из тех кто вращается во "взрослом" мире спят и видят вернуться обратно в детство! Смысл сейчас терять то, что потом будет так не хватать?

    А вообще я бы учил не программирование на Python-е, а более серьезные вещи.

    Вот список:
    * Русский язык - Умение выразить свою мысль используя свой родной язык грамотно, лаконично и ясно.
    * Математика - это просто самый охрененный тренажор для постановки программерского мозга.
    * Английский язык - сейчас очень много вопросов решается только, если читаешь, пишешь, говоришь хотя бы на уровне аналогично знанию руссского гастробайтером. Но чем лучше знаете и применяете, тем больше путей и дверей открывается
    * Физкультура - Пока Вы молоды и организм все еще развивается, то надо его развивать дальше. Уверяю Хороший программер, но без секса - это печально. Посредственный программер(среднячок), но счастливый и довольный жизнь это круто.
    * Коммуникабельные навыки - Эти навыки важны в ЛЮБОМ возрасте. Мы все знаем что в любом классе есть заводилы, лидеры, к ним клеются девченки, их мнение слушают их уважают и им значительно лучше живется. Но даже среднячком быть тоже работа над собою ;) А то когда вырастите не сможете вежливо отказать такому заказчику, которого лучше вообще не видеть и не слышать, не то что с ним работать
    Ответ написан
    2 комментария