Создаем пакеты
Пакет в Python — это, грубо говоря, папка с другими папками и модулями. Помимо разделения частей проекта, пакеты нужны для формирования пространства имен, чтобы можно работать с пакетами и модулями через точку, как в примере выше.
При импорте вида from package import * будет подключены либо все модули и объекты модуля __init__.py, либо то, что находится в переменной __all__ в том же модуле __init__.py — подробнее про эту переменную было в посте ранее.
Также примечателен файл init.py, который раньше был обязателен для создания пакетов. С версии Python 3.3 его необходимость пропала. Однако его функциональность на этом не заканчиваются.
Подписывайтесь на канал 👉@pythonofff
Пакет в Python — это, грубо говоря, папка с другими папками и модулями. Помимо разделения частей проекта, пакеты нужны для формирования пространства имен, чтобы можно работать с пакетами и модулями через точку, как в примере выше.
При импорте вида from package import * будет подключены либо все модули и объекты модуля __init__.py, либо то, что находится в переменной __all__ в том же модуле __init__.py — подробнее про эту переменную было в посте ранее.
Также примечателен файл init.py, который раньше был обязателен для создания пакетов. С версии Python 3.3 его необходимость пропала. Однако его функциональность на этом не заканчиваются.
Подписывайтесь на канал 👉@pythonofff
Функция enumerate для получения пар индекс-значение
Функция enumerate() применяется в случаях, когда необходим счётчик количества элементов в последовательности. Позволяет избавиться от необходимости инициировать и обновлять отдельную переменную-счётчик.
Подписывайтесь на канал 👉@pythonofff
Функция enumerate() применяется в случаях, когда необходим счётчик количества элементов в последовательности. Позволяет избавиться от необходимости инициировать и обновлять отдельную переменную-счётчик.
Подписывайтесь на канал 👉@pythonofff
Завершение программы
Функция exit создана для удобства работы в интерактивном режиме, однако не рекомендуется использовать её внутри скриптов.
По факту функция просто поднимают исключение SystemExit. А при попытке вызова без скобок напишут подсказку о правильном способе выхода из интерпретатора.
Использовать sys.exit() стоит потому, что этот метод лежит в стандартном модуле и всегда там доступен. Также это довольно явный способ завершения программы.
Подписывайтесь на канал 👉@pythonofff
Функция exit создана для удобства работы в интерактивном режиме, однако не рекомендуется использовать её внутри скриптов.
По факту функция просто поднимают исключение SystemExit. А при попытке вызова без скобок напишут подсказку о правильном способе выхода из интерпретатора.
Использовать sys.exit() стоит потому, что этот метод лежит в стандартном модуле и всегда там доступен. Также это довольно явный способ завершения программы.
Подписывайтесь на канал 👉@pythonofff
Перемешивание
Располагает элементы списка в произвольном порядке. Обратите внимание: shuffle работает в обычном порядке и возвращает None.
Подписывайтесь на канал 👉@pythonofff
Располагает элементы списка в произвольном порядке. Обратите внимание: shuffle работает в обычном порядке и возвращает None.
Подписывайтесь на канал 👉@pythonofff
Создаем виртуальное окружение
Виртуальное окружение — это изолированная среда, которая имеет свои локальные интерпретатор и пакеты, независимые от глобального интерпретатора и других окружений.
В стандартной библиотеке Python третьей версии есть пакет venv, который позволяет создавать виртуальные окружения удобно и быстро. Пример представлен на картинке.
Скрипт activate в директории bin предназначен для активации окружения, а команда deactivate в уже активированном окружении — для выхода из него.
В случае успешного создания и активации у вас в терминале должно появится название вашего виртуального окружения в круглых скобках.
Подписывайтесь на канал 👉@pythonofff
Виртуальное окружение — это изолированная среда, которая имеет свои локальные интерпретатор и пакеты, независимые от глобального интерпретатора и других окружений.
В стандартной библиотеке Python третьей версии есть пакет venv, который позволяет создавать виртуальные окружения удобно и быстро. Пример представлен на картинке.
Скрипт activate в директории bin предназначен для активации окружения, а команда deactivate в уже активированном окружении — для выхода из него.
В случае успешного создания и активации у вас в терминале должно появится название вашего виртуального окружения в круглых скобках.
Подписывайтесь на канал 👉@pythonofff
Многоточие в Python
Многоточие Python – это последовательность из трех точек, часто используемая в естественных языках. Но чего вы, возможно, не знаете – это еще и валидный объект в Python
Подписывайтесь на канал 👉@pythonofff
Многоточие Python – это последовательность из трех точек, часто используемая в естественных языках. Но чего вы, возможно, не знаете – это еще и валидный объект в Python
Подписывайтесь на канал 👉@pythonofff
Статические методы
Отличие статических методов от обычных в том, что они привязаны к классу, а не объекту. То есть они могут быть вызваны напрямую у класса.
Статический метод не принимает ни объект (self), ни класс (cls) в аргументах. То есть такие методы не могут модифицировать ни объект, ни сам класс.
Реализовать статический метод можно двумя способами. Один из них — присвоить классу новый метод, напрямую передав изначальный метод в функцию staticmethod.
Но так делать не принято, поэтому чаще всего staticmethod используют в качестве декоратора при написании методов прямо в классе.
Подписывайтесь на канал 👉@pythonofff
Отличие статических методов от обычных в том, что они привязаны к классу, а не объекту. То есть они могут быть вызваны напрямую у класса.
Статический метод не принимает ни объект (self), ни класс (cls) в аргументах. То есть такие методы не могут модифицировать ни объект, ни сам класс.
Реализовать статический метод можно двумя способами. Один из них — присвоить классу новый метод, напрямую передав изначальный метод в функцию staticmethod.
Но так делать не принято, поэтому чаще всего staticmethod используют в качестве декоратора при написании методов прямо в классе.
Подписывайтесь на канал 👉@pythonofff
all or any: все или хоть что-нибудь
Python – удивительно простой и выразительный язык. Его даже иногда называют «выполняемым псевдокодом». И с этим трудно поспорить, когда вы можете себе позволить конструкции
Подписывайтесь на канал 👉@pythonofff
Python – удивительно простой и выразительный язык. Его даже иногда называют «выполняемым псевдокодом». И с этим трудно поспорить, когда вы можете себе позволить конструкции
Подписывайтесь на канал 👉@pythonofff
Находим наименьшие и наибольшие
В стандартной библиотеке есть модуль heapq, который, как можно понять по названию, реализует структуру даных куча.
Особенности и пользу этой структуры данных пока что разбирать не будем, но посмотрим на два интересных метода в этом модуле.
С помощью методов nsmallest и nlargest можно получить наименьшие и наибольшие элементы в списке.
Первым аргументов передается, сколько элементов нужно взять, вторым — список.
Подписывайтесь на канал 👉@pythonofff
В стандартной библиотеке есть модуль heapq, который, как можно понять по названию, реализует структуру даных куча.
Особенности и пользу этой структуры данных пока что разбирать не будем, но посмотрим на два интересных метода в этом модуле.
С помощью методов nsmallest и nlargest можно получить наименьшие и наибольшие элементы в списке.
Первым аргументов передается, сколько элементов нужно взять, вторым — список.
Подписывайтесь на канал 👉@pythonofff
Проверка необходимой версии Python
Чтобы ваши пользователи не могли запустить скрипт в несовместимой версии, в коде стоит проверить наличие актуальной версии Python.
Подписывайтесь на канал 👉@pythonofff
Чтобы ваши пользователи не могли запустить скрипт в несовместимой версии, в коде стоит проверить наличие актуальной версии Python.
Подписывайтесь на канал 👉@pythonofff
Получаем информацию о памяти на диске
Со встроенным модулем shutil многие уже, вероятно, знакомы, но его обычно используют в контексте задач копирования, переноса файлов и папок.
Но с помощью shutil мы можем даже получить информацию о памяти на жестком диске компьютера. Метод disk_usage возвращает количество всей, занятой и свободной памяти.
Так как все три значения возвращаются в байтах, в примере мы их перевели и вывели в гигабайты для лучшей наглядности.
Подписывайтесь на канал 👉@pythonofff
Со встроенным модулем shutil многие уже, вероятно, знакомы, но его обычно используют в контексте задач копирования, переноса файлов и папок.
Но с помощью shutil мы можем даже получить информацию о памяти на жестком диске компьютера. Метод disk_usage возвращает количество всей, занятой и свободной памяти.
Так как все три значения возвращаются в байтах, в примере мы их перевели и вывели в гигабайты для лучшей наглядности.
Подписывайтесь на канал 👉@pythonofff
Разница между списками
Возвращает разницу между двумя списками после применения функции к каждому элементу обоих списков.
Подписывайтесь на канал 👉@pythonofff
Возвращает разницу между двумя списками после применения функции к каждому элементу обоих списков.
Подписывайтесь на канал 👉@pythonofff
Списковые включения
На основе итерируемых объектов можно удобно и без циклов строить списки в одну строчку — такой синтаксис называется списковыми включениями.
Сейчас подробнее разберем именно списки, но по такому же принципу можно создавать и словари.
В квадратных скобках вы пишите самую обычную конструкцию цикла for, но само выражение ставите перед ключевым словом for. Также можно добавлять условия в конце записи.
Как правило, списковые включения работают заметно быстрее, чем циклы. Однако, злоупотреблять этим не рекомендуется, так как это зачастую снижает читаемость кода.
Подписывайтесь на канал 👉@pythonofff
На основе итерируемых объектов можно удобно и без циклов строить списки в одну строчку — такой синтаксис называется списковыми включениями.
Сейчас подробнее разберем именно списки, но по такому же принципу можно создавать и словари.
В квадратных скобках вы пишите самую обычную конструкцию цикла for, но само выражение ставите перед ключевым словом for. Также можно добавлять условия в конце записи.
Как правило, списковые включения работают заметно быстрее, чем циклы. Однако, злоупотреблять этим не рекомендуется, так как это зачастую снижает читаемость кода.
Подписывайтесь на канал 👉@pythonofff
Наличие дублей
Проверяет, есть ли в списке повторяющиеся значения, пользуясь тем, что set()содержит только уникальные элементы
Подписывайтесь на канал 👉@pythonofff
Проверяет, есть ли в списке повторяющиеся значения, пользуясь тем, что set()содержит только уникальные элементы
Подписывайтесь на канал 👉@pythonofff
Ищем учеников на бесплатный интенсив по созданию искусственного интеллекта с нуля. Опыт программирования не важен!🤖
Гарантия трудоустройства всем выпускникам университета! Удаленная работа из любой точки мира!
Всего за 3 вечера под руководством Дмитрия Романова - основателя Университета Искусственного Интеллекта, лидера обучения AI-разработке в РФ и СНГ, вы с легкостью напишете свой первый искусственный интеллект👨💻
Какие нейронные сети вы создадите?
👉Классификация марок молока
👉Классификация людей на входящих и выходящих из автобуса
👉Обнаружение возгораний
👉Оценка стоимости квартир
👉Классификация отзывов на Teslа
👉Оценка резюме соискателей
👉Прогнозирование стоимости полиметаллов
👉Сегментация изображений самолетов
👉Распознавание команд умного дома⠀
Лучше освоить навыки создания нейронных сетей вам помогут домашние задания с проверкой от кураторов.⠀
Приходите на бесплатный интенсив и напишите искусственный интеллект за 3 вечера💪
Регистрируемся тут
Гарантия трудоустройства всем выпускникам университета! Удаленная работа из любой точки мира!
Всего за 3 вечера под руководством Дмитрия Романова - основателя Университета Искусственного Интеллекта, лидера обучения AI-разработке в РФ и СНГ, вы с легкостью напишете свой первый искусственный интеллект👨💻
Какие нейронные сети вы создадите?
👉Классификация марок молока
👉Классификация людей на входящих и выходящих из автобуса
👉Обнаружение возгораний
👉Оценка стоимости квартир
👉Классификация отзывов на Teslа
👉Оценка резюме соискателей
👉Прогнозирование стоимости полиметаллов
👉Сегментация изображений самолетов
👉Распознавание команд умного дома⠀
Лучше освоить навыки создания нейронных сетей вам помогут домашние задания с проверкой от кураторов.⠀
Приходите на бесплатный интенсив и напишите искусственный интеллект за 3 вечера💪
Регистрируемся тут
Время исполнения программы
Зачастую требуется замерить время исполнения кода, чтобы понять, насколько оптимальное решение было выбрано.
Как вариант, можно воспользоваться функцией time из модуля time, которая возвращает текущее время в формате Unix.
Перед исполнением нашего кода сохраним начальное время, а после — конечное. Путем вычета первого из второго и получим время исполнения программы.
Использование time.time() — не самый точный и лучший вариант, но, например, для быстрого сравнения двух разных частей кода подходит хорошо.
Подписывайтесь на канал 👉@pythonofff
Зачастую требуется замерить время исполнения кода, чтобы понять, насколько оптимальное решение было выбрано.
Как вариант, можно воспользоваться функцией time из модуля time, которая возвращает текущее время в формате Unix.
Перед исполнением нашего кода сохраним начальное время, а после — конечное. Путем вычета первого из второго и получим время исполнения программы.
Использование time.time() — не самый точный и лучший вариант, но, например, для быстрого сравнения двух разных частей кода подходит хорошо.
Подписывайтесь на канал 👉@pythonofff
Склеивание n строк в одну
С помощью этого фрагмента можно сильно сэкономить память. Достаточно записать строку n раз без использования циклов
Подписывайтесь на канал 👉@pythonofff
С помощью этого фрагмента можно сильно сэкономить память. Достаточно записать строку n раз без использования циклов
Подписывайтесь на канал 👉@pythonofff
Очистка элементов в последовательности
Встроенный модуль itertools был создан для работы с более сложными случаями итераторов. Плюс модуля в том, что он быстро работает и оптимизирован в плане памяти.
Иногда возникает необходимость в удалении ненужных объектов последовательности. Как раз для этого и используют itertools, а именно метод compress.
Первым аргументом передается какой-либо контейнер, например список. Вторым аргументом — логические значения, соответствующие элементам в последовательности.
Если логическое значения равно True или 1, то элемент сохраняется в последовательности, в противном случае — удаляется из нее.
Подписывайтесь на канал 👉@pythonofff
Встроенный модуль itertools был создан для работы с более сложными случаями итераторов. Плюс модуля в том, что он быстро работает и оптимизирован в плане памяти.
Иногда возникает необходимость в удалении ненужных объектов последовательности. Как раз для этого и используют itertools, а именно метод compress.
Первым аргументом передается какой-либо контейнер, например список. Вторым аргументом — логические значения, соответствующие элементам в последовательности.
Если логическое значения равно True или 1, то элемент сохраняется в последовательности, в противном случае — удаляется из нее.
Подписывайтесь на канал 👉@pythonofff
Объединение двух словарей
В Python 2 для соединения двух словарей мы использовали метод update(). В Python 3.5 процесс еще проще.
В этом же скрипте объединены два словаря. В случае пересечения используются значения из второго словаря.
Подписывайтесь на канал 👉@pythonofff
В Python 2 для соединения двух словарей мы использовали метод update(). В Python 3.5 процесс еще проще.
В этом же скрипте объединены два словаря. В случае пересечения используются значения из второго словаря.
Подписывайтесь на канал 👉@pythonofff
Получаем информацию по IP
Недавно наткнулся на интересный пакет ip2geotools, с помощью которого можно получить геолокацию по IP из нескольких баз данных. Устанавливается он через пакетный менеджер pip.
Метод get из класса DbIpCity, который представляет некоммерческую базу данных, позволяет получить всю необходимую информацию по желаемому IP бесплатно.
Атрибуты city, region, country хранят в себе информацию о городе, регионе и стране. А обратившись к атрибутам latitude и longitude можно получить широту и долготу.
Подписывайтесь на канал 👉@pythonofff
Недавно наткнулся на интересный пакет ip2geotools, с помощью которого можно получить геолокацию по IP из нескольких баз данных. Устанавливается он через пакетный менеджер pip.
Метод get из класса DbIpCity, который представляет некоммерческую базу данных, позволяет получить всю необходимую информацию по желаемому IP бесплатно.
Атрибуты city, region, country хранят в себе информацию о городе, регионе и стране. А обратившись к атрибутам latitude и longitude можно получить широту и долготу.
Подписывайтесь на канал 👉@pythonofff
Проверка использования памяти объектом
Возвращает размер объекта в байтах.
Если указано значение по умолчанию, то оно вернется, если объект не предоставляет способа получить размер. В противном случае возникнет исключение TypeError.
Getsizeof() вызывает метод объекта sizeof и добавляет размер дополнительной информации, которая хранится для сборщика мусора, если он используется.
Подписывайтесь на канал 👉@pythonofff
Возвращает размер объекта в байтах.
Если указано значение по умолчанию, то оно вернется, если объект не предоставляет способа получить размер. В противном случае возникнет исключение TypeError.
Getsizeof() вызывает метод объекта sizeof и добавляет размер дополнительной информации, которая хранится для сборщика мусора, если он используется.
Подписывайтесь на канал 👉@pythonofff