Собрали в одном месте самые важные ссылки
консультируем про IT, Python
Цикл do while отличается от цикла while тем, что в do while сначала выполняется тело цикла, а затем проверяется условие продолжения цикла. Из-за такой особенности do while называют циклом с постусловием. Таким образом, если условие do while заведомо ложное, то хотя бы один раз блок операторов в теле цикла do while выполнится.
Иииии.... такой конструкции - do...while нет в Python. Написать цикл с постусловие можно так:
PyPy — это интерпретатор Python, который написан на Python (RPython) и может компилировать сам себя.
Основное отличие от обычного CPython — наличие JIT компилятора. Прелесть JIT компилятора в том, что в течении работы программы оптимизируются ее части.
Скорость исполнения кода на PyPy выше. На сайте http://speed.pypy.org/ вы можете найти сравнения CPython и PyPy. На сайте есть график (в самом низу): На графике видно, что скорость исполнения одного и того же кода на CPython и PyPy различается в среднем в 7 раза.
В стандартной Python начиная с 2.3 существует механизм импорт-хуков. Зачем они нужны? Все очень просто - захотелось добавить поддержку импорта из .zip архивов. Ява такое может (.jar) - чем Питон хуже? Но открывать редактор только ради .zip не очень... Поэтому Python умеет загружать модули из базы данных или с соседнего сервера.
Механизм механизм импорт-хуков реализован с помощью:
...
В синтаксисе Python один и тот же символ или конструкция часто используется для разных целей Возможно вы встречались с подобным кодом:
....
Похож на декоратор. Это называется замыканием. Это более общий случай декоратора. Смысл замыкания состоит в том, что определение функции "замораживает" окружающий её контекст на момент определения. Это может делаться различными способами, например, за счёт параметризации создания функции
Представим ситуацию. Есть модель Текст (заголовок, тело, теги) и модели Новость, Продукт, Реклама, которые имеют свои уникальные параметры. Необходимо связать Текст и все остальные - вполне логичное желание.
Как можно поступить:
...
Если вы автор Python-библиотеки, то скорее всего вам необходимо поддерживать несколько версий Python. Стандартный набор - 2.6, 2.7, 3.3, 3.4 и сейчас уже 3.5. Поддерживать несколько версий Python помогают тесты.
Не секрет, что тесты помогают допускать меньше ошибок во время поддержки проекта. Например, вы можете смелее делать рефакторинг и быть уверены, что функционал который проверяют тесты работает.
Пускай написали тесты для озвученных версий Python, как их запускать? Постоянно менять venv и тыкать python run_test.py? Есть удобнее инструмент - tox...
На русском языке не так много хороший книг, но есть. Среди них выделяется пособие Шабанова Павла.
Данное электронное пособие на русском языке посвящено работе с научной графикой с помощью графической библиотекой matplotlib языка программирования python.
Учебник предназначен для всех желающих освоить библиотеку matplotlib для создания научной графики в python. Книга будет интересна студентам, аспирантам и научным сотрудникам всех возрастов.
Главная цель пособия - облегчить изучение библиотеки matplotlib и предложить ряд готовых решений для создания научной графики высокого публикационного качества. Приведённые в учебнике примеры показывают возможности языка python для визуализации результатов научной деятельности.
Ссылка на книгу: https://github.com/whitehorn/Scientific_graphics_in_python
Начиная с версии 3.2, в Python появилась возможность стандартными средствами организовать мемоизацию. Иными словами, кэшировать результаты вызова функции. Этот механизм представлен в виде декоратора в модуле functools и называется lru_cache (least recently used cache)...
GIL Python снимает множество головной боли с программиста, но и не дает малой кровью использовать всю мощь CPU.
А что если реально надо быстрее исполнить код? Например, надо сделать 1000 запросов в web.
Можно...[Продолжение]
Logging — библиотека для удобного ведения логов в Python
В любой разработке приходится рано или поздно вести логи, ведь не отдашь же заказчику программу где отладочные сообщения выводятся с помощью print, да и в...[Продолжение]
Возможно!
Рассказ "Управление памятью в real-time приложениях Python" Антона Патрушева покажет как можно писать Python приложения с максимально быстрым откликом.
В определенных случаях множественное наследование это зло.
Добро - когда классы родители не перекрывают друг друга. Частный случай такой схемы - примиси == миксины == mixin == mix in.
Концепция примисей...[Продолжение]
Представим ситуацию, вы читаете лекцию, пускай студентам. Хочется все по шагам и подробно рассказать о данном куске кода.
Можно вести славеса пол часа, а можно продемонстрировать с помощью
Статический анализ кода — анализ кода без реального исполнения кода.
Под словом "анализ" можно понимать многое - что код соответствует PEP8, что код безопасный (все типы верно приведены), что код не содержит...[Продолжение]
Представим ситуацию: есть блог, в котором публикуются посты на двух языках (а может и на 10). Необходимо рассортировать посты по языкам в разные RSS. (постов очень много, пускай 1000)
Вопрос к аудитории - как вы...[Продолжение]
Статья от Rafe Kettler.
Что такое магические методы?
Они всё в объектно-ориентированном Питоне. Это специальные методы, с помощью которых вы можете добавить в ваши классы «магию». Они всегда обрамлены двумя...[Продолжение]
frozenset и set, это как кортеж (tuple) и список. Первые являются неизменяемыми, вторые изменяемые.
Иммутабельные(неизменяемые) структуры данных - это коллекции, которые нельзя изменить. Примерно как числа. Число...[Продолжение]
Модуль collections - предоставляет специализированные типы данных, на основе словарей, кортежей, множеств, списков. Этот модуль хорошо себя показывает при частой работе со словарями и списками.
Например, данный...[Продолжение]
В Python все является объектом. Даже класс. Не объект класса, а сам класс.
»> ().__class__
<type 'tuple'>
»> ().__class__.__class__
<type 'type'>...[Продолжение]
http://www.youtube.com/watch?v=luhyEER7_KM">http://www.youtube.com/watch">http://www.youtube.com/watch?v=luhyEER7_KM