Пять простых примеров, которые сподвигнут тебя изучить Python |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2020-03-06 12:56 Python за последнее десятилетие набрал огромную популярность и не сдает своих позиций — его применение и для обучения программированию, и для разработки приложений только растет. Не каждый язык может похвастаться популярностью в таких разных отраслях, как веб-разработка, DevOps, научные вычисления и машинное обучение. Языки становятся популярными по разным причинам, иногда просто из-за отсутствия других решений для определенной ниши. Успех Python, на мой взгляд, вполне заслужен — его легко изучать, приятно использовать, и на нем можно начать писать полезные программы довольно скоро. В чем секрет его успеха? У него простой в изучении, логичный и лаконичный синтаксис. Многие языки полны сюрпризов вроде легендарного В Python смысл выражений почти всегда очевиден, а все ошибки сопровождаются исключениями, из которых легко понять, что пошло не так. Например, если мы попытаемся записать в массив по несуществующему индексу, то сразу получим ошибку с исчерпывающим описанием проблемы. Например, в Ruby или Lua аналогичный код приведет массив к виду При выборе языка для нового проекта нужно учитывать не только свойства самого языка, но и его экосистему: библиотеки, инструменты разработки, да и сообщество пользователей. С этим у Python все отлично. Его поддерживают многие популярные IDE, а некоторые среды даже разработаны специально для него, как PyCharm. Есть множество инструментов анализа и отладки, например, py-spy — профайлер, которым можно подключиться к работающей программе и в реальном времени смотреть, какие функции выполняются и сколько времени занимают. Число библиотек для самых разных целей тоже огромно. Некоторые из них стали настолько популярны, как TensorFlow, pandas, или NumPy, что люди используют Python для машинного обучения и анализа данных специально, чтобы ими воспользоваться. В DevOps не менее популярны Ansible и Saltstack. В сочетании с неплохой производительностью, это позволяет применять Python как для коротких скриптов и разовых задач, так и для больших приложений. Как и любой другой язык, Python не универсален и не всегда является лучшим выбором для конкретной задачи, но он покрывает достаточно большой класс задач и требований к производительности, чтобы для многих проектов быть основным или единственным языков. При недостатке производительности подмножество Python можно компилировать в машинный код с помощью Cython, или переписать на другом языке и взаимодействовать с ним через FFI. Самое главное: с помощью нужных библиотек, решать многие задачи просто. Даже для начинающего разработчика Python быстро станет помощником в повседневных задачах. Именно поэтому его часто выбирают для изучения в качестве первого языка, и существует множество курсов, где с этим помогают — например, в онлайн школе SkillFactory. INFO Школа SkillFactory — спонсор этой публикации. Со SkillFactory ты можешь пройти курс «Python для веб-разработки» и освоить полный стек технологий для создания сайтов, приложений и сервисов. Для студентов предусмотрена помощь наставника; в процессе обучения студент формирует портфолио, которое потом сможет показать работодателю. Чтобы продемонстрировать мощь Python, я выбрал ряд библиотек, которые не требуют сложной установки зависимостей или наборов данных, и позволяют сделать что-то полезное всего за несколько строк кода. Виртуальные окружения Для разработки и тестирования пользователи Python часто применяют виртуальные окружения (virtual environments). В Python 2.x их поддержка была реализована опциональным модулем, но в Python3 уже есть встроенная поддержка, так что для их установки ничего делать не нужно. Каждое окружение живет в своем каталоге, поэтому устанавливать в него модули можно от имени обычного пользователя. Если ты необратимо сломал свое окружение, можно просто удалить каталог и пересоздать его. Не менее полезно бывает создать чистое окружение чтобы убедиться, что твоя библиотека или приложение чисто устанавливается из исходников и работает. Создать и активировать виртуальное окружение очень просто. На UNIX-подобных системах это делается так: Выйти из окружения можно командой Чтобы не засорять рабочую систему лишними модулями, все примеры лучше пробовать именно в виртуальном окружении. Замена скриптов на shell Скрипты на Bourne shell — классика системного администрирования и автоматизации, но как язык программирования, шелл так и остался в семидесятых. Его собственные средства отладки и обработки ошибок примитивны, к тому же, если ты хочешь сделать скрипт кроссплатформенным, нужно тщательно избегать «башизмов» и всего, что не входит в стандарт POSIX. Инструменты вроде ShellCheck могут с этим помочь, но можно пойти и другим путем — не использовать Shell вовсе. В стандартной библиотеке Python уже есть ряд модулей, которые сделают за тебя половину работы. К примеру, скопировать файл с помощью функции из модуля shutil можно в одну строку. Там же присутствуют Выполнить команду и получить ее код завершения и вывод ничуть не сложнее. Иногда бывает сложно обойтись без передачи пользовательского ввода внешней команде. Это открывает простор для уязвимостей типа shell injection и требует внимания к деталям. К счастью, в стандартной библиотеке уже есть функция, которая добавит кавычки и экранирует опасные символы. Разбор веб-страниц Разбор веб-страниц (scraping) нужен для многих целей: от борьбы с сервисами, которые не предоставляют API, до создания поисковых систем. Для демонстрации мы извлечем заголовки новостей с главной страницы журнала. C помощью библиотеки requests и парсера HTML BeautifulSoup мы можем сделать это всего в несколько строк. Установим библиотеки: Сохрани в файл вроде Веб-приложения На Python есть большие фреймворки MVC, такие как весьма популярный Django. Но есть и легковесные библиотеки, с которыми можно за пару строк кода превратить любую функцию в веб-сервис. Один из самых популярных микрофреймворков — Flask. Для демонстрации напишем сервис, который в ответ на запрос Установим Flask командой Теперь можно запустить его командой Если тебе не понравился Flask, можно вместо него посмотреть на Bottle — он ничуть не сложнее в использовании. Обработка естественного языка Обработка естественного языка традиционно считается сложной и специализированной задачей. Библиотеки для этой цели весьма развиты, но не слишком просты в использовании. Однако, модуль TextBlob предоставляет простой интерфейс к библиотеке NLTK. Перед использованием нам нужно поставить саму библиотеку и скачать наборы данных для нее: Теперь попробуем написать функцию, которая возвращает существительное во множественном числе. Скопируй это все в интерпретатор и попробуй в действии. Так же просто разбить текст на предложения: В TextBlob есть много других возможностей, например, разбор на члены предложения — очень пригодится, если хочешь написать текстовый квест или чат-бота. Заключение Это всего несколько примеров, но репозиторий пакетов PyPI огромен и каждый найдет там что-то для себя. Когда ты только изучаешь язык, нет ничего плохого в том, чтобы написать свое решение давно решенной задачи. Но вот если тебе нужно быстрое решение насущной задачи вроде работы с каким-нибудь форматом файла или взаимодействия с сервисом, не забудь поискать в репозитории — скорее всего оно там уже есть. Источник: xakep.ru Комментарии: |
|