Python обучающий
63K subscribers
807 photos
7 videos
405 links
Здесь есть всё, чтобы упростить изучение Python. Без воды и сложных терминов.

Сотрудничество: @bateman24, @justcage

Работаем с @Tgpodbor_official

Ссылка РНК: https://clck.ru/3Ghwjd
Download Telegram
Функция open()

то еще одна встроенная функция, которую мы, вероятно, используем ежедневно и принимаем как должное. При открытии файла мы обычно пишем.

Выражение with open(...) не считывает файл целиком и не запоминает его в памяти. Вместо этого оно возвращает итерируемый объект типа file. Благодаря этому можно читать огромные файлы и не беспокоиться о памяти.
Проверяем переменную на истинность

Создаём Python-файл со следующим кодом. Для проверки переменной DEBUG на истинность здесь используется функция get(). Программа выводит разные сообщения в зависимости от значения переменной.
Как создать базовый объект timedelta в Python

Для начала давайте создадим базовый объект timedelta:

Итак, мы успешно создали объект timedelta. Теперь нам нужно создать «эталонное» время, чтобы можно было применить созданный нами объект timedelta для выполнения каких-нибудь арифметических действий.
В мире IT — море позиций. Можно сойти с ума в попытке перечислить особенности каждой. В Яндекс Практикуме давно решили вопрос с профориентацией — команда предлагает пройти тест и начать IT-карьеру благодаря специальному центру с 850 партнёрских вакансий за один только 2023 год.

Истории выпускников Практикума показывают, что каждый может сменить профессию: из медсестры — в тестировщицы, из полицейского — в разработчика, из разнорабочего — в программиста. Больше 10 000 выпускников уже нашли работу — у вас тоже может получиться. Попробуйте!
Как вывести текущую дату и время в Python

Прежде чем проводить какие-либо вычисления, давайте зададим отправную точку. К примеру, возьмем текущую дату.

Получить текущую дату и время можно при помощи вызова метода now() объекта datetime, как показано во фрагменте кода
Как рассчитать дату в будущем в Python

Давайте посчитаем, какая дата будет после промежутка time_delt1, который мы создали ранее.

Чтобы вычислить будущий момент времени, нам нужно только добавить диапазон, определенный объектом timedelta, к текущему времени.
Блок for…else

Все мы знаем, что else неразрывно связан с блоком if, но вы, возможно, не в курсе, что else используется в цикле for.

В выражении for...else блок else выполняется только в том случае, если все итерации цикла будут успешно завершены. Если же выполнение цикла прерывается оператором break, то else не выполняется.
Виртуальные окружения

Скорее всего, вы работаете над несколькими проектами Python одновременно. К сожалению, иногда два проекта будут полагаться на разные версии одной и той же библиотеки. Какую из них вы установите себе?

К счастью, поддержка языком Python виртуальных сред позволяет вам получить нужное для обоих проектов. Напишем в командной строке
Замена значений переменных

Если есть желание поменять значения переменных. Можно записать это в 3 строчки. Но можно и в одну. Трюки питона.
from future import

Одним из последствий популярности Python является то, что постоянно разрабатываются и выходят новые версии. Новые версии — новые возможности, но только не для вас, если вы пользуетесь устаревшей.

Впрочем, не всё так плохо. Модуль future даёт возможность импортировать функциональность будущих версий Python. Это прямо как путешествие во времени, или магия
howdoi

Зависли над какой-то проблемой и не можете вспомнить её решение? Нужно зайти на StackOverflow, но не хочется покидать терминал?

Тогда вам не обойтись без этого инструмента командной строки:

$ pip install howdoi

Задайте любой вопрос, и он постарается найти ответ на него
__repr__

При определении класса или объекта полезно добавлять «официальный» способ представления объекта строкой.

Метод repr() позволяет определять строковое представление, предназначенное для программиста и удобное при использовании во время отладки, а метод str() позволяет определять понятное пользователю строковое представление, которое можно отображать в интерфейсе программы.
Виртуальные среды

Часто Python-программисты работают над несколькими проектами одновременно. К сожалению, порой два проекта зависят от разных версий одной зависимости. Какую же установить?

К счастью, в Python есть поддержка виртуальных сред, которые позволяют взять лучшее от двух миров. В командной строке нужно ввести

Теперь вы можете иметь разные независимые версии Python на одной машине
xkcd

Юмор — ключевая особенность Python. В конце концов, язык был назван в честь британского комедийного шоу «Летающий цирк Монти Пайтона». Во многих местах официальной документации можно найти отсылки к самым известным эпизодам шоу.

Конечно, чувство юмора не заканчивается на документации.
newspaper3k

Если вы ещё с ним не встречались, то приготовьтесь к тому, что модуль 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 вероятность того, что среди них есть дубликат, гораздо меньше, чем один к миллиарду.

Вполне недурно для двух строк кода.
YAML

YAML означает «YAML — не язык разметки» («YAML Ain’t Markup Language»). Это язык форматирования данных, являющийся надмножеством JSON.

В отличие от JSON, YAML может хранить более сложные объекты и ссылаться на собственные элементы. Также там можно писать комментарии, что делает YAML подходящим для конфигурационных файлов.

Модуль PyYAML позволяет использовать YAML в Python.

PyYAML позволяет хранить любые Python-объекты и экземпляры любых пользовательских классов.
Красивый вывод списка

Обычный формат вывода списка с помощью print не очень удобен. Конечно, становится понятно, что из себя представляет список, но чаще всего пользователь не хочет видеть кавычки вокруг каждого элемента.

Метод join преобразовывает список в строку, рассматривая каждый элемент как строку. Разделителем является та строка, для которой был вызван join. Он достаточно умен, чтобы не вставлять разделитель после последнего элемента.

Дополнительный бонус: join работает линейное время. Никогда не создавайте строку складыванием элементов списка в цикле for: это не просто некрасиво, это занимает квадратичное время!
Списковые включения

Возможно где-то до этого ты уже мог слышать понятие «list comprehensions». Это такой способ уместить цикл for, блок if и присваивание в одну строку.

Начнем с простейшего примера. Допустим, нам снова надо возвести в квадрат все элементы списка.

Да, определенно этот код короче предыдущего, но всё еще некрасив. С первого взгляда сложно сказать, что делает функция map (она принимает в качестве аргументов функцию и список и применяет функцию к каждому элементу списка). К тому же мы вынуждены определять функцию, это выглядит довольно беспорядочно.

Но, оказывается, можно писать проще и понятнее
Обмен значениями при помощи кортежей

Один из популярных трюков в Python – обмен значениями без создания временной переменной. Способ применим для любого числа переменных.

В правой части инструкции присваивания последовательностей допускается указывать любые итерируемые объекты. Главное, чтобы число элементов слева равнялось числу элементов справа. Такое присваивание применяется и для сложных вложенных конструкций.