В мире IT — море позиций. Можно сойти с ума в попытке перечислить особенности каждой. В Яндекс Практикуме давно решили вопрос с профориентацией — команда предлагает пройти тест и начать IT-карьеру благодаря специальному центру с 850 партнёрских вакансий за один только 2023 год.
Истории выпускников Практикума показывают, что каждый может сменить профессию: из медсестры — в тестировщицы, из полицейского — в разработчика, из разнорабочего — в программиста. Больше 10 000 выпускников уже нашли работу — у вас тоже может получиться. Попробуйте!
Истории выпускников Практикума показывают, что каждый может сменить профессию: из медсестры — в тестировщицы, из полицейского — в разработчика, из разнорабочего — в программиста. Больше 10 000 выпускников уже нашли работу — у вас тоже может получиться. Попробуйте!
Блок for…else
Все мы знаем, что else неразрывно связан с блоком if, но вы, возможно, не в курсе, что else используется в цикле for.
В выражении for...else блок else выполняется только в том случае, если все итерации цикла будут успешно завершены. Если же выполнение цикла прерывается оператором break, то else не выполняется.
Все мы знаем, что else неразрывно связан с блоком if, но вы, возможно, не в курсе, что else используется в цикле for.
В выражении for...else блок else выполняется только в том случае, если все итерации цикла будут успешно завершены. Если же выполнение цикла прерывается оператором break, то else не выполняется.
Виртуальные окружения
Скорее всего, вы работаете над несколькими проектами Python одновременно. К сожалению, иногда два проекта будут полагаться на разные версии одной и той же библиотеки. Какую из них вы установите себе?
К счастью, поддержка языком Python виртуальных сред позволяет вам получить нужное для обоих проектов. Напишем в командной строке
Скорее всего, вы работаете над несколькими проектами Python одновременно. К сожалению, иногда два проекта будут полагаться на разные версии одной и той же библиотеки. Какую из них вы установите себе?
К счастью, поддержка языком Python виртуальных сред позволяет вам получить нужное для обоих проектов. Напишем в командной строке
from future import
Одним из последствий популярности Python является то, что постоянно разрабатываются и выходят новые версии. Новые версии — новые возможности, но только не для вас, если вы пользуетесь устаревшей.
Впрочем, не всё так плохо. Модуль future даёт возможность импортировать функциональность будущих версий Python. Это прямо как путешествие во времени, или магия
Одним из последствий популярности Python является то, что постоянно разрабатываются и выходят новые версии. Новые версии — новые возможности, но только не для вас, если вы пользуетесь устаревшей.
Впрочем, не всё так плохо. Модуль future даёт возможность импортировать функциональность будущих версий Python. Это прямо как путешествие во времени, или магия
__repr__
При определении класса или объекта полезно добавлять «официальный» способ представления объекта строкой.
Метод repr() позволяет определять строковое представление, предназначенное для программиста и удобное при использовании во время отладки, а метод str() позволяет определять понятное пользователю строковое представление, которое можно отображать в интерфейсе программы.
При определении класса или объекта полезно добавлять «официальный» способ представления объекта строкой.
Метод repr() позволяет определять строковое представление, предназначенное для программиста и удобное при использовании во время отладки, а метод str() позволяет определять понятное пользователю строковое представление, которое можно отображать в интерфейсе программы.
Виртуальные среды
Часто Python-программисты работают над несколькими проектами одновременно. К сожалению, порой два проекта зависят от разных версий одной зависимости. Какую же установить?
К счастью, в Python есть поддержка виртуальных сред, которые позволяют взять лучшее от двух миров. В командной строке нужно ввести
Теперь вы можете иметь разные независимые версии Python на одной машине
Часто Python-программисты работают над несколькими проектами одновременно. К сожалению, порой два проекта зависят от разных версий одной зависимости. Какую же установить?
К счастью, в Python есть поддержка виртуальных сред, которые позволяют взять лучшее от двух миров. В командной строке нужно ввести
Теперь вы можете иметь разные независимые версии Python на одной машине
newspaper3k
Если вы ещё с ним не встречались, то приготовьтесь к тому, что модуль newspaper снесёт вам крышу.
Он даёт возможность извлекать статьи и связанные мета-данные из множества разных источников. Можно извлечь изображения, текст и имена авторов.
В нём даже есть встроенная NLP-функциональность.
Поэтому, если вы собирались использовать BeautifulSoup или другую библиотеку для вебскрапинга в своём следующем проекте, лучше сэкономьте своё время и силы и установите newspaper
Если вы ещё с ним не встречались, то приготовьтесь к тому, что модуль newspaper снесёт вам крышу.
Он даёт возможность извлекать статьи и связанные мета-данные из множества разных источников. Можно извлечь изображения, текст и имена авторов.
В нём даже есть встроенная NLP-функциональность.
Поэтому, если вы собирались использовать BeautifulSoup или другую библиотеку для вебскрапинга в своём следующем проекте, лучше сэкономьте своё время и силы и установите newspaper
uuid
Стандартный модуль uuid — быстрый и простой способ сгенерировать UUID (universally unique identifier, глобально уникальный идентификатор).
Так мы создаём случайное 128-битное число, которое почти наверняка будет уникальным.
Существует более 2¹²² возможных UUID. Это более 5 ундециллионов или 5,000,000,000,000,000,000,000,000,000,000,000,000.
Вероятность нахождения дубликатов в заданном наборе крайне мала. Даже при наличии триллиона UUID вероятность того, что среди них есть дубликат, гораздо меньше, чем один к миллиарду.
Вполне недурно для двух строк кода.
Стандартный модуль uuid — быстрый и простой способ сгенерировать UUID (universally unique identifier, глобально уникальный идентификатор).
Так мы создаём случайное 128-битное число, которое почти наверняка будет уникальным.
Существует более 2¹²² возможных UUID. Это более 5 ундециллионов или 5,000,000,000,000,000,000,000,000,000,000,000,000.
Вероятность нахождения дубликатов в заданном наборе крайне мала. Даже при наличии триллиона UUID вероятность того, что среди них есть дубликат, гораздо меньше, чем один к миллиарду.
Вполне недурно для двух строк кода.
YAML
YAML означает «YAML — не язык разметки» («YAML Ain’t Markup Language»). Это язык форматирования данных, являющийся надмножеством JSON.
В отличие от JSON, YAML может хранить более сложные объекты и ссылаться на собственные элементы. Также там можно писать комментарии, что делает YAML подходящим для конфигурационных файлов.
Модуль PyYAML позволяет использовать YAML в Python.
PyYAML позволяет хранить любые Python-объекты и экземпляры любых пользовательских классов.
YAML означает «YAML — не язык разметки» («YAML Ain’t Markup Language»). Это язык форматирования данных, являющийся надмножеством JSON.
В отличие от JSON, YAML может хранить более сложные объекты и ссылаться на собственные элементы. Также там можно писать комментарии, что делает YAML подходящим для конфигурационных файлов.
Модуль PyYAML позволяет использовать YAML в Python.
PyYAML позволяет хранить любые Python-объекты и экземпляры любых пользовательских классов.
Красивый вывод списка
Обычный формат вывода списка с помощью print не очень удобен. Конечно, становится понятно, что из себя представляет список, но чаще всего пользователь не хочет видеть кавычки вокруг каждого элемента.
Метод join преобразовывает список в строку, рассматривая каждый элемент как строку. Разделителем является та строка, для которой был вызван join. Он достаточно умен, чтобы не вставлять разделитель после последнего элемента.
Дополнительный бонус: join работает линейное время. Никогда не создавайте строку складыванием элементов списка в цикле for: это не просто некрасиво, это занимает квадратичное время!
Обычный формат вывода списка с помощью print не очень удобен. Конечно, становится понятно, что из себя представляет список, но чаще всего пользователь не хочет видеть кавычки вокруг каждого элемента.
Метод join преобразовывает список в строку, рассматривая каждый элемент как строку. Разделителем является та строка, для которой был вызван join. Он достаточно умен, чтобы не вставлять разделитель после последнего элемента.
Дополнительный бонус: join работает линейное время. Никогда не создавайте строку складыванием элементов списка в цикле for: это не просто некрасиво, это занимает квадратичное время!
Списковые включения
Возможно где-то до этого ты уже мог слышать понятие «list comprehensions». Это такой способ уместить цикл for, блок if и присваивание в одну строку.
Начнем с простейшего примера. Допустим, нам снова надо возвести в квадрат все элементы списка.
Да, определенно этот код короче предыдущего, но всё еще некрасив. С первого взгляда сложно сказать, что делает функция map (она принимает в качестве аргументов функцию и список и применяет функцию к каждому элементу списка). К тому же мы вынуждены определять функцию, это выглядит довольно беспорядочно.
Но, оказывается, можно писать проще и понятнее
Возможно где-то до этого ты уже мог слышать понятие «list comprehensions». Это такой способ уместить цикл for, блок if и присваивание в одну строку.
Начнем с простейшего примера. Допустим, нам снова надо возвести в квадрат все элементы списка.
Да, определенно этот код короче предыдущего, но всё еще некрасив. С первого взгляда сложно сказать, что делает функция map (она принимает в качестве аргументов функцию и список и применяет функцию к каждому элементу списка). К тому же мы вынуждены определять функцию, это выглядит довольно беспорядочно.
Но, оказывается, можно писать проще и понятнее
Обмен значениями при помощи кортежей
Один из популярных трюков в Python – обмен значениями без создания временной переменной. Способ применим для любого числа переменных.
В правой части инструкции присваивания последовательностей допускается указывать любые итерируемые объекты. Главное, чтобы число элементов слева равнялось числу элементов справа. Такое присваивание применяется и для сложных вложенных конструкций.
Один из популярных трюков в Python – обмен значениями без создания временной переменной. Способ применим для любого числа переменных.
В правой части инструкции присваивания последовательностей допускается указывать любые итерируемые объекты. Главное, чтобы число элементов слева равнялось числу элементов справа. Такое присваивание применяется и для сложных вложенных конструкций.
Удаление дубликатов в списке
Среди регулярно используемых трюков в Python – преобразование списка во множество и обратно в список для удаления повторяющихся элементов списка
Но множества – это неупорядоченные последовательности. Часто стоит задача сохранить порядок следования элементов. Для этого удобно воспользоваться типом данных OrderedDict из модуля collections
Среди регулярно используемых трюков в Python – преобразование списка во множество и обратно в список для удаления повторяющихся элементов списка
Но множества – это неупорядоченные последовательности. Часто стоит задача сохранить порядок следования элементов. Для этого удобно воспользоваться типом данных OrderedDict из модуля collections
Назначение переменных и функций по условию
Иногда элементы if настолько просты, что кажется излишним тратить на них строки. В этом случае имеет смысл применить тернарный оператор if/else
Интерпретатор выполняет выражение Y, если объект X – истина, и Z, если X – ложь. Не злоупотребляйте этим выражением, если X, Y, Z имеют сложную форму записи.
Тернарный оператор можно использовать не только для переменных, но и для функций
Иногда элементы if настолько просты, что кажется излишним тратить на них строки. В этом случае имеет смысл применить тернарный оператор if/else
Интерпретатор выполняет выражение Y, если объект X – истина, и Z, если X – ложь. Не злоупотребляйте этим выражением, если X, Y, Z имеют сложную форму записи.
Тернарный оператор можно использовать не только для переменных, но и для функций