Python Learning
34.6K subscribers
1.91K photos
8 videos
7 files
913 links
№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://yangx.top/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
加入频道
Бесконечный итератор последовательности

С помощью itertools.cycle() создаётся кольцевой итератор. Прийдя к последнему значению, он вновь начинает с первого.
Википедия

А как часто вы пользуетесь википедией? Если часто, то процесс поиска информации в ней можно немного упростить. За счёт официальной библиотеки, что так и называется Wikipedia, вы можете быстро находить информацию по разным ключевым словам.
help()

Функция help() предоставляет простой способ получения доступа к документации Python без интернета для любой функции, ключевого слова или модуля.
Библиотека mimesis(продолжение см пост выше)

В этот раз сгенерируем данные о человеке.
JmesPath

Работать с JSON в Python — сплошное удовольствие, ведь он прекрасно отображается в Python-словаре. Кроме того, Python поставляется с собственной библиотекой для создания и анализа, или разбора, JSON. Для меня это одна из лучших функций в Python. Если мне нужно поработать с JSON, то я непременно выберу Python.

Но в стандартном пакете есть и кое-что, чего вам может не хватать. Если вы пользуетесь json.loads(), а данные из словаря получаете вручную (возможно, добавляя какие-то циклы), то готовьтесь сильно удивиться!

JMESPath (читается как «JAMES PATH») делает работу с JSON на Python еще проще. Теперь вы можете декларативно указывать, как извлекать элементы из JSON-документа. Вот несколько примеров, иллюстрирующих возможности JMESPath.
Delorean

Delorean — отличная библиотека для работы с датами и временем. Работа с временем с помощью неё в Python мне кажется наиболее естественной. Так же стоит отметить отличную документацию и бесчисленное количество отсылок к «Назад в будущее».
Имеется кортеж вида T = (4, 2, 3). Какая из операций приведёт к тому, что имя T будет ссылаться на кортеж (1, 2, 3)?
Anonymous Quiz
24%
T[0] = 1
21%
T = (1) + T[1:]
32%
T = (1,) + T[1:]
23%
T.startswith(1)
Преобразование изменяемых данных в неизменяемые

Изменяемые данные (например, словари или списки) — это структуры, к которым могут быть добавлены новые значения.

Неизменяемые данные, в противоположность изменяемым, после создания остаются неизменными. Посмотрите, как можно преобразовать изменяемый тип данных в неизменяемый.
😱1
Создание строки из списка строк

Создание строки из списка и установка пробелов между каждым словом.

Все сводится к тому, что функция String.join() может присоединять не только списки, но и любой iterable. Помещение его внутрь строки предотвращает реализацию одной и той же функциональности в нескольких местах.
Разбивание массива на маленькие куски указанного размера

Для создания списка желаемого размера используется range, а заполняется список при помощи map.
Ключевое слово yield

Yield — это ключевое слово в Python, которое используется для возврата из функции с сохранением состояния ее локальных переменных, и при повторном вызове такой функции выполнение продолжается с оператора yield, на котором ее работа была прервана. Любая функция, содержащая ключевое слово yield, называется генератором. Можно сказать, yield — это то, что делает ее генератором. Хотя оператор yield в Python не отличается популярностью, но он имеет множество достоинств, о которых стоит знать.
Вызов отладчика 10-символьной командой

Функцией breakpoint() можно пользоваться в Python 3.6+. Она инициирует запуск сессии pdb.set_trace().

Эта команда может выглядеть как нечто, созданное исключительно для удобства (и, возможно, так оно и есть), но я воспринимаю её как быстрый и красивый способ вызова отладчика.
from __future__ import

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

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

Этот пример используется для устранения всех ложных значений из списка, например false, 0, None, " ".
Разбор веб-страниц

Разбор веб-страниц (scraping) нужен для многих целей: от борьбы с сервисами, которые не предоставляют API, до создания поисковых систем.

Для демонстрации мы извлечем заголовки новостей с главной страницы журнала. C помощью библиотеки requests и парсера HTML BeautifulSoup мы можем сделать это всего в несколько строк.

Установим библиотеки: pip3 install requests beautifulsoup4. Теперь откроем xakep.ru в отладчике браузера и увидим, что заголовки новостей находятся в тэгах <h3 class="entry-title">, но не напрямую, а во вложенных <a> и <span>. К счастью для нас, BeautifulSoup поддерживает селекторы CSS3, а в ее стандарте tag1 tag2 как раз означает «<tag2> вложенный в <tag1>. То есть, наш селектор для заголовков новостей будет h3.entry-title a span.

Сохрани в файл вроде xakep-headings.py и выполни python3 xakep-headings.py или просто скопируй в интерпретатор, и ты увидишь все свежие новости.
1
Веб-приложения

На Python есть большие фреймворки MVC, такие как весьма популярный Django. Но есть и легковесные библиотеки, с которыми можно за пару строк кода превратить любую функцию в веб-сервис.

Один из самых популярных микрофреймворков — Flask. Для демонстрации напишем сервис, который в ответ на запрос /add/x/y выдает сумму чисел x и y.

Установим Flask командой pip3 install flask и сохраним код с картинки в файл myapp.ру.

Теперь можно запустить его командой env FLASK_APP=myapp.ру flask run.
$ curl http://localhost:5000/add/3/2
5
Создание словаря из набора ключей

Для создания словаря из известного набора ключей и одинаковых значений часто используют генераторы словарей (dict comprehensions).

Однако класс dict имеет удобный метод fromkeys, который был создан специально для таких случаев.
Приветствую всех, на связи админ! Какой контент вы бы хотели видеть на канале больше всего? Какие темы вам интересны?