
Python на Хабре
Часто, перед собеседованием, бывает полезно освежить в памяти то, что вы и так знаете. Поэтому, мы решили собрать ссылки на наиболее интересные и полезные статьи по Python, опубликованные на Habr.com. Статьи будут полезен опытным разработчикам для повторения, а начинающим разработчикам помогут понять, как сделать первые шаги.
Основы Python
- Основы языка программирования Python за 10 минут
- Основы Python в кратком изложении: 1, 2, 3, 4, 5, 6
- Что нужно запомнить программисту, переходящему на Python
- Уроки Python от компании Google
- Советы Google по кодированию на языке Python: 1, 2
- Аналоги в Python и JavaScript: 1, 2, 3, 4
- Форматирование Python-кода
- Be Pythonic
- Code Like a Pythonista: Idiomatic Python: 1, 2, 3
- Пишем красивый идиоматический Python
- Python качественно
- Путеводитель по Python. Пишем великолепный код
- Pythonic
- Вещи, о которых следует помнить, программируя на Python
- Python-way. Работа над ошибками
- Наиболее частые проблемы Python и решения (перевод)
- Как работают библиотеки виртуального окружения
- Всё, что нужно знать о сборщике мусора в Python
- Онлайн-репетитор по Python
- Прочие варианты использования оператора else
- Регулярные выражения, пособие для новичков: 1, 2
- Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения
- Введение в аннотации типов Python
- Что нужно знать, уметь и понимать, чтобы не иметь проблем с поиском работы питонистом
Python для опытных разработчиков
- Материалы продвинутого уровня по Питону
- Python изнутри: 1, 2, 3, 4
- Погружение в пучину интерпретатора Python
- Заметки об объектной системе языка: 1, 2, 3
- Некоторые возможности Python о которых вы возможно не знали
- Несколько подводных камней статической типизации в Python
- Как сделать функции на Python еще лучше
- Абстрактные классы и интерфейсы
- Интерфейс vs interface
- Внутреннее устройство Python list
- Кортеж здорового человека
- Именованные кортежи. Пишем код на Python чище
- Как устроен namedtuple или динамическое создание типов
- Оптимизации, используемые в Python: список и кортеж
- Сопрограммы
- Как работает yield
- О порядке поиска пакетов и модулей для импорта в Python
- Использование памяти в Python
- Как устроен парсер Python, и как втрое уменьшить потребление им памяти
- Сколько объектов выделяет Python, выполняя скрипты?
- Управление памятью в Python
- Память и числа в Python
- Сравнение эффективности способов запуска веб-приложений на языке Python
- Ускорение кода на Python средствами самого языка
- Производительность в Python. Легкий путь
- Улучшение производительности Python 2.7
- Python — это медленно. Почему?
- Неочевидная оптимизация по скорости при решении конкретной задачи на Python
- Python: как уменьшить расход памяти вдвое, добавив всего одну строчку кода?
- Пайпы, the pythonic way
- Руководство к дескрипторам
- Еще немного о дескрипторах в Python
- Метаморфозы атрибутов класса
- Пользовательские атрибуты в Python
- Ultimate benchmark пяти с половиной способов проверить наличие атрибута объекта
- Всё, что Вы хотели знать о слайсах
- Сортировки: key vs cmp
- Memoization в Python
- Мемоизация и каррирование (Python)
- Мемоизация дефолтным kwarg в Python
- Устранение утечек памяти в приложении на Питоне
- Неочевидное поведение некоторых конструкций
- Балуемся с унарными операторами в Python
- Консервация объектов в Python
- Интервально-ассоциативный массив
- Порядок разрешения методов в Python
- Итерируем все и вся
- Why itertools rocks
- Итерируемый объект, итератор и генератор
- Python: коллекции: Все о выражениях-генераторах, генераторах списков, множеств и словарей 1, 2, 3, 4
- Генераторы словарей
- Реализация словаря в Python 2.7
- Введение в Data classes
- Управление окружением Python c Pipenv
- Два с половиной приема при работе с argparse
- 10 самых распространенных ошибок безопасности в Python и как их избежать
Декораторы
- Понимаем декораторы в Python’e, шаг за шагом 1, 2
- Сила и красота декораторов
- Добавляем чуть больше рефлексии: декораторы
- Python: декорируем декораторы. Снова
- Декоратор cached_property
- Псевдопрактический пример замыканий и декораторов
GUI для Python
WxPython
- Знакомство с wxPython
- Сказ о wx.Python
- Пример использования WxPython для создания нодового интерфейса: 1, 2, 3, 4, 5
- Потоки в wxPython
PyQt
- Написание приложений, основаных на Qt, на языке Python
- Первый цикл статей о PyQt4: 1, 2, 3, 4, 5
- Второй цикл статей о PyQt4: 1, 2
- PyQt. Управляем памятью, собираем мусор
- Реализация паттерна MVC для PyQt
- Точим себе инструмент на PyQt
- PyQt: простая работа с потоками
- Сложности сборки Python3 + Qt5 приложений под Windows
Tkinter
PyGTK
- Введение в pygtk/gtkbuilder: пишем калькулятор
- Компоновка — начало начал
- Ещё немного о компоновке и виджетах
- Прогресбар и нити в PyGTK
- PyGTK: потоки и магия обёрток
Метапрограммирование
- Использование метаклассов в Python
- Метаклассы в Python
- Заметки о метапрограммировании в Python
- «Наследование» не от классов
- Python: метапрограммирование в продакшене: 1, 2
Функциональный Python
- Введение в функциональное программирование на Python
- Функциональное программирование для землян — функции
- Функциональное программирование для землян — списки
- Откуда идут «функциональные» корни Python
- Ненормальное функциональное программирование на Python
- Не ещё одна статья о функциональном программировании
- Для тех, кто хочет странного: монады в Python
- Монады в Python поподробнее
- Паттерны проектирования без ООП
- Абстрагирование потока управления
- Правильное абстрагирование потока управления
- «Простое» программирование на python
- Некоторые приемы функционального программирования в Python
Многопоточность и многопроцессность в Python
- Асинхронный Python: различные формы конкурентности
- Основы работы с потоками в языке Python
- Еще раз о многопоточности и Python
- Python threading или GIL нам почти не помеха
- Как устроен GIL в Python
- И еще раз о GIL в Python
- Параллельный Питон, начало
- Параллельное программирование в Python при помощи multiprocessing и shared array
- Учимся писать многопоточные и многопроцессные приложения на Python
- Эффективное использование памяти при параллельных операциях ввода-вывода в Python
- Python и Twisted — Заметки о параллельной обработке данных
- Конкурентность в асинхронном приложении на примере twisted
- Stackless Python и Concurrence
- Python 3.5; async/await
- Немного фактов о python asyncio
- AsyncIO для практикующего python-разработчика
- Паттерны корутин asyncio: за пределами await
- Примеры использования asyncio: HTTPServer?!
- Написание framework на asyncio, aiohttp и мысли про Python3 часть первая
- Тестируем aiohttp с помощью простого чата
- Tornado vs Aiohttp: путешествие в дебри асинхронных фреймворков
- Эффективная многопоточность в Python
- Python реализация парадигмы event-driven с помощью сопрограмм
- Реализация на Python многопоточной обработки данных для парсинга сайтов
Отладка и тестирование
- Профилирование и отладка Python: 1, 2, 3, 4
- pdb – Интерактивный отладчик
- pdbe — помощник встроенного Python-дебаггера и процесса отладки
- Тестирование. Начало
- Знакомство с тестированием в Python: 1, 2
- Полное покрытие кода
- Генерация юнит-тестов
- Непрерывное тестирование питонопроекта
- Модульное тестирование и Python
- Модуль Mock: макеты-пустышки в тестировании
- TextTest — кроссплатформенный фреймворк на python для тестирования GUI и не только: 1, 2
- Тестирование с Locust: 1, 2, 3
Советы, уловки, хаки
- Python: советы, уловки, хаки: 1, 2, 3, 4
- Интересности и полезности python: 1, 2, 3
- Консольные хитрости Питон: история команд + автодополнение
- Python-неизвестный
- Python: вещи, которых вы могли не знать
- 6 способов слияния списка списков
- Python: надежная защита от потери запятой в вертикальном списке строк
- Python — оптимизация хвостовой рекурсии
- Устранение Хвостовой рекурсии
- Учим старую собаку новым трюкам или как я научился любить str.format и отказался от %
- Что за чёрт, Python
- Изменяемые свойства классов в питоне: польза для дела и мелкого хулиганства
- Ночные кошмары Питона: неявный
this
- Сортировка миллиона 32-битных int’ов в 2 мегабайтах памяти на Питоне
Философия Python
- Мысли о Python 3
- Python, философия дизайна — Guido van Rossum: 1, 2
- Почему существует так много Питонов?
- Перестаньте писать классы
- Зачем мне гибкость Python, если мне запрещают ей пользоваться?
- Чистая архитектура в Python: пошаговая демонстрация: 1, 2, 3, 4, 5
- Типы данных наносят ответный удар
IDE и редакторы
Sublime Text 2
Vim
- Vim+Python. Для начинающих
- Настраиваем Vim под Python
- VIM как IDE для разработки на Python
- Настройка Vim для работы с Python и Django
- VIM, Django… Django, VIM
Emacs
- Цикл статей Emacs и Python: 1, 2
- Emacs как редактор кода для Python и Golang
Geany
Notepad++
Практическое применение
Использование API различных социальных сетей и сервисов
- Скачивание музыки из VK: 1, 2
- Экспорт друзей VK в Google Contacts
- Twitter + VK: 1, 2
- Пишем себе немного OpenID-авторизации
- Jabber-to-Evernote Gateway изнутри
- Получение любимых аудиозаписей с pandora.com
- Flightstats API: Пишем свое табло прилетов с Боингами и Аэробусами
- Скрипт проверки наличия свободных дат в посольстве
- Клиент для SOAP API Почты России
- Bing + Python, поиск изображений
Создание чата на Python
- Программа-мечта начинающего питоновода
- Yet another python Chat client
- WebSocket-чат на Tornado для вашего Django-проекта
Создание ботов на Python
- Пишем бота для Twitter на основе GitHub API
- Простой Twitter-бот
- Не совсем обычный XMPP-бот: туннелирование
- Skype-бот для голосовых конференций
- Создаем бота для Skype. Шаг за шагом, через REST API и на Python
- Пишем бота для игры «Найди отличие»
- Создание простого чат-бота в VK на Python 3
- Бот для ВКонтакте: 1
- Пишем чат бота для ВКонтакте на python с помощью longpoll: 1 2
- Как написать чат-бота для vk.com за 3 минуты
- Создание и интегрирование бота VK в группу через VkBotLongPoll
- Обучаемый Telegram чат-бот с ИИ в 30 строчек кода на Python
- Чат-бот для ВКонтакте на Python на Callback API
- Как создать чат-бота для ВКонтакте, используя Python, Django и webhook
- Пишем диалоговые Telegram-боты на Питоне
- Написание Telegram-бота для Habrahabr
- Как я писал графического бота и во что это превратилось
- Пиратская копия платного сервиса в 39 строчек Python кода
- ICQ бот
Серверы и сетевое программирование
- Сокеты в Python для начинающих
- Асинхронный http-клиент, или почему многопоточность — лишнее
- Асинхронный удар
- Свой асинхронный tcp-сервер за 15 минут с подробным разбором
- Как применять Linux epoll в Python
- Реализация небольшого асинхронного сервера
- Сервер на python для websockets
- Inbox.py: самый простой SMTP-сервер
- FTP сервер с авторизацией через базу данных
Система
- Демон для удаленного управления компьютером через e-mail
- Python для системных администраторов
- Переименование процессов в Python
- Whois: практическое руководство пользователя
- Симуляция нажатий Home, End, PgUp, PgDown
- Python на примере демона уведомления о новых коммитах Git
- Git. Автоматическая проверка сообщения коммита на стороне сервера с помощью Python
- Мониторинг за изменениями файловой системы
- Скрипт для рекурсивного сравнения директорий
- Gnome Applets. Введение
- Пишем апплет для GNOME
- Пишем апплет-переводчик для Gnome
- Totem Gnome Applet
- Как написать дополнение для GIMP на языке Python
- KDE4 Plasma Desktop. Создание плазмоида
- KDE4 + Python. Плазма-змей
Консоль
Парсинг текста
- Пишем свой шаблонизатор на Python
- Regexp и Python: извлечение токенов из текста
- Парсинг на Pуthon. Как собрать архив Голубятен
- Как я учился работать с XML
- Кузявые ли бутявки, т.е. пишем морфологический анализатор
- Обработка Excel файлов с использованием Python
- Частотный анализатор английских слов
- Разбор кода и построение синтаксических деревьев с PLY. Основы
- Обработка Excel файлов с использованием Python
- Социальный граф хабрасообщества
- Автоматизируем проверку трекинга почты России
- Доставка свежей прессы с помощью Python прямо в почтовый ящик
- Grab — python библиотека для парсинга сайтов
- Документация по Grab — библиотеке для парсинга сайтов
- Генерим PDF бочками
Обработка изображений
- Играемся с изображениями в Python
- Получаем тип и размеры изображения без скачивания его целиком
- Решение проблемы оперативного ресайза изображений
Разработка игр
- Создание игр на Python 3 и Pygame: 1, 2, 3, 4, 5
- Игра Жизнь на Python
- Blender 2.49b + Python 2.6 – используем клавиатуру в своей игре
- Blender 2.6 + Python 3.2 – задействуем устройства ввода в собственной игре
- Пишем платформер на Python, используя pygame: 1 | 2.1 | 2.2
- Создаем 2D игру на Python с библиотекой Arcade
- Многопользовательский онлайн-шутер на WebGL и asyncio
Django
- Несколько советов по организации Python-приложения на сервере
- Эффективный Django: 1, 2, 3, 4
- Django работает не так, как вы думаете
- Django throttling
- 10 основных ошибок, совершаемых Django-разработчиками
- Django tips & tricks
- 7 вредных советов проектировщику REST API
- Навигация в шаблонах Django
- И снова о кешировании в Django
- Дорабатываем HTTP-кэширование в Django
- Рецепты Django. Part 1 — AJAX формы
- Пишем backend для мобильного приложения за несколько минут
- Сумбурные заметки про python и django
- Несколько полезных полей Django
- Как быстро настроить email-аутентификацию в Django
- Капча с помощью PIL или практический велосипед
- Фотогалерея на Django с использованием Google Picasa в качестве хостинга
- Хостинг картинок за полчаса
- Разработка сервиса по загрузке альбомов
- Применяем визуальные эффекты к изображениям в Django
- Об организации кода в django-приложениях или толстые модели – это прекрасно
- Модели Django и решение проблем с конкурентным доступом к данным
- Django ORM, gevent и грабли в зелени
- Заметки для построения эффективных Django-ORM запросов в нагруженных проектах
- Django ORM — медленный? Оптимизируем (хардкорно)
- Django ORM. Добавим сахарку
- Оптимизация стадии инициализации Django
- «Удаление» объектов в Django
- Создание management commands в Django
- Celery: лучшие практики
- Несколько советов по организации Python-приложения на сервере
Flask
- Мега-Учебник Flask: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23
- What the flask?
- Проектирование простых приложений в Flask
- Создание RESTful API в Google App Engine на основе Flask
- Простой монитор системы на Flask
Алгоритмы, структуры данных
- Сортировки всех времён и народов
- Сортировки выбором
- Сортировки вставками
- Сортировки обменами
- Сортировки слиянием
- Сортировка «Ханойская башня»
- Сортировка очереди без использования дополнительных ресурсов
- Python: сортировка списков методом .sort() с ключом — простыми словами
- Решаем задачи без самобалансирующихся деревьев в Python
- Префиксные деревья в Python
- Алгоритм создания списка всех перестановок или размещений
- Задачка о восьми ферзях
- Реализация графов и деревьев на Python
- Введение в алгоритм A*
- Раз дощечка, два дощечка — будет лесенка…
- Выразительная простота python на примере задач из комбинаторики
- Алгоритм нахождения простых чисел
- Поиск в строке. Реализация в CPython
- Создание простейших структур данных с помощью функций в Python
- Одна простенькая задачка. Быстро, красиво или чисто?
Машинное обучение, ИИ, анализ данных
- Некоторые репозитории в помощь изучающим и преподающим Python и машинное обучение
- Анализ данных с использованием Python
- Python и DataScience: изучаем возможности универсальной библиотеки Numpy
- Декодирование капчи на Python
- Распознавание некоторых современных CAPTCHA
- Анализ рынка ноутбуков с помощью Python
- Введение в анализ текстовой информации с помощью Python и методов машинного обучения
- Введение в анализ данных с помощью Pandas
- Латентно-семантический анализ и поиск на python
- PyBrain работаем с нейронными сетями на Python
- Простой классификатор на PyBrain и PyQt4
- Обучаем компьютер чувствам (sentiment analysis по-русски)
- Определение части речи слов в русском тексте (POS-tagging)
- Частотный анализатор английских слов
- Сравнение и создание морфологических анализаторов в NLTK
- Синтаксический анализ в NLTK
- Играем с генетическими алгоритмами
- Обучение с подкреплением на языке Python
- Топ-10 инструментов Python для машинного обучения и data-science
- Введение в машинное обучение с помощью Python и Scikit-Learn
- Байесовский анализ в Python
- Делаем проект по машинному обучению на Python: 1, 2, 3
- NumPy в Python: 1, 2, 3, 4
Теги:Python