Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Редирект вывода программы
В contextlib есть еще один прикольный контекстный менеджер — redirect_stdout, позволяющий перенаправить стандартный вывод программы.
Контекстный менеджер принимает аргумент, в котором мы можем указать, куда должен переправляться весь вывод в последующем блоке.
Таким образом, данные из print() в контекстом менеджере будут переправлены в открытый ранее файл, так как мы его передали в аргумент redirect_stdout.
Убедится в этом можем, открыв файл заново и прочитав оттуда данные.
Подписывайтесь на канал 👉@pythonofff
Неизвестное количество аргументов через *arguments
Если функция может принимать любое количество аргументов, то перед названием параметра добавьте *
Подписывайтесь на канал 👉@pythonofff
Создаем контекстный менеджер с помощью декоратора
Обычно протокол управления контекстом реализовывают с помощью класса и двух магических методов: __enter__ и __exit__. Но такой подход может показаться слегка сложным.
Так вот, помимо написания своего класса, есть еще один способ создать контекстный менеджер — использовать декоратор @ contextmanager из встроенного пакета contextlib.
Первая часть функции tag, которая идёт до yield, выполняется при входе в блок with. Затем исполняется сам этот блок, а после этого завершается оставшаяся часть, которая идет после yield.
Подписывайтесь на канал 👉@pythonofff
Как работают арифметические операции
Если кто-то еще не знает, то в Python всё является объектами: числа в том числе. И при любых операциях, включая арифметические, у объектов вызываются магические методы.
Например, при сложении у объекта первого слагаемого вызывается соответствующий магический метод и в качестве аргумента передается объект второго слагаемого.
Еще стоит отметить, что у float поддерживается деление с остатком, то есть метод __div__. А int имеет только деление с округлением, реализованное в методе __floordiv__.
Подписывайтесь на канал 👉@pythonofff
Обучаем Java-разработчиков оплата после выхода на работу
В Kata Academy можно выучиться на Java-разработчика бесплатно, а заплатить уже после трудоустройства по специальности из фактической зарплаты.
Если задуматься, то все в выигрыше:
— ты получаешь работу в Москве или Санкт-Петербурге с хорошей зарплатой, мы получаем процент за инвестиции в тебя;
— в наших интересах научить тебя так, чтобы твоя зарплата была как можно выше;
— мы прокачиваем твои навыки еще 2 года после курса: проводим выездные мероприятия и мастер-классы — и доходы наших выпускников растут;
— мы не зависим от банков и их рассрочек — кризис не повлиял на доступность курсов.
Чтобы попасть на курс, нужно выполнить небольшое тестовое задание. Переходи по ссылке и оставляй заявку!
Узнать больше
#реклама 16+
kata.academy
О рекламодателе
Подборка Telegram каналов для программистов
Системное администрирование 📌
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux
/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT.
/channel/phis_mat Обучающие видео, книги по Физике и Математике
/channel/php_lib Библиотека PHP программиста 👨🏼💻👩💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста
1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus
Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах
GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
/channel/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
/channel/game_devv Все о разработке игр
Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT
Чат программистов📌
/channel/developers_ru
Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов
БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию
QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика
Шутки программистов 📌
/channel/itumor Шутки программистов
Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров
Английский 📌
/channel/UchuEnglish Английский с нуля
Математика 📌
/channel/Pomatematike Канал по математике
Excel лайфхак📌
/channel/Excel_lifehack
Генерируем QR-код
Простой, но удобный и полезный пакет для создания QR-кодов. Для отрисовки картинок используется Pillow, так что убедитесь, что он у вас установлен.
Чтобы создать объект картинки с QR-кодом необходимо вызвать метод make() и передать данные в качестве аргумента. А для сохранения нужно применить метод save() к полученному объекту.
Подписывайтесь на канал 👉@pythonofff
Возврат нескольких значений
Здесь возвращается кортеж. С тем же эффектом можно было бы написать return (name, birthdate).
Это нормально для ограниченного количества возвращаемых значений. Но все, что превышает 3 значения, должно быть помещено в класс (data)
Подписывайтесь на канал 👉@pythonofff
Курс по ручному тестированию с гарантией трудоустройства
Если ты не найдешь работу, берем все расходы за обучение на себя. Поступи и начни работать в IT уже через 5 месяцев!
Обучение в Kata Academy построено по принципу win-win:
— ты получаешь работу в Москве или Санкт-Петербурге с хорошей зарплатой, мы получаем процент за инвестиции в тебя;
— в наших интересах научить тебя так, чтобы твоя зарплата была как можно выше;
— если ты потеряешь работу, мы поможем найти новую;
— мы не зависим от банков и их рассрочек — кризис не повлиял на доступность курсов.
Мы не работаем на поток, для поступления нужно сделать тестовое задание. Этим ты покажешь, что действительно готов
Узнать больше
#реклама
kata.academy
О рекламодателе
Порядок разрешения методов
В Python существует так называемый Method Resolution Order (MRO), или порядок разрешения методов в классе. Всё, что вам нужно знать – это порядок, в котором Python ищет нужный атрибут или метод.
Этот порядок можно получить при помощи атрибута __mro__. Он говорит о том, что если мы в примере выше попробуем обратиться к атрибуту value, Python будет искать сначала в классе A, далее в B, затем в C и в самом конце в object.
Отсюда становится понятно, что артибут первее будет найден именно в классе B и равен он будет значению 1.
Подписывайтесь на канал 👉@pythonofff
Обмен переменными между блокнотами
Эта команда позволяет вам хранить любую переменную и использовать ее в различных блокнотах Jupyter.
Чтобы извлечь переменную, вам нужно ввести ту же команду с параметром ‘-r’.
Подписывайтесь на канал 👉@pythonofff
Ответьте на вопрос и музыка ваша до конца лета бесплатно
Яндекс Музыка для вас и 3-х ваших близких до конца лета бесплатно. Попробуйте сейчас!
Попробовать
#реклама 18+
music.yandex.ru
О рекламодателе
Проверяем скорость интернета
Каждый хоть раз проверял скорость своего интернета на Speedtest. А у них, оказывается, есть не только сайт и приложения, но и пакет на Python для этого дела.
У объекта класса Speedtest методы download() и upload() выдают соответственно скорость скачивания и загрузки данных.
Методы отдают результат в байтах, поэтому для наглядности в примере я перевел все данные в мегабайты при выводе.
Подписывайтесь на канал 👉@pythonofff
%matplotlib inline — это самая популярная магическая команда
Она позволяет отображать в блокнотах графики Matplotlib. Эта команда активирует интерактивную поддержку Matplotlib для блокнота Jupyter.
Подписывайтесь на канал 👉@pythonofff
Компьютеры и комплектующие в Xcom-Shop!
💻
Интернет-магазин выгодных цен на:
- компьютеры
- ноутбуки
- комплектующие
- периферию
- расходные материалы
💰
Кэшбэк и бонусы за каждую покупку
🏃♂️
Вперед за выгодными покупками в Xcom-Shop
Перейти на сайт
#реклама
xcom-shop.ru
О рекламодателе
Не платите за подписку: получите её на 3 месяца за 0₽
Ответьте на 1 вопрос до конца июня и получите в подарок доступ к Кинопоиску и Яндекс Музыке бесплатно на 90 дней
✨ Сервисы доступны для Вас и трёх ваших близких
Попробовать
#реклама 18+
kinopoisk.ru
О рекламодателе
Институт государственной службы и управления!
Выбираешь куда поступить - поступай в Институт государственной службы и управления РАНХиГС, стань успешным управленцем!
ИГСУ - №1 в рейтинге лучших ВУЗов страны по подготовке управленческих кадров. На выбор множество направлений: государственное и муниципальное управление, юриспруденция, экономика, журналистика, продюсерство и другие. Бесплатная подготовка к поступлению и персональный наставник с первого дня обучения.
Более 100 бюджетных мест, отсрочка от армии, яркая и насыщенная студенческая жизнь!
РАНХиГС ИГСУ- твой верный путь в будущее!
Подать заявку
#реклама
igsu.ranepa.ru
О рекламодателе
Обмен значений переменных
Обмен значений двух переменных - это действие, в результате которого одна переменная принимает значение, равное второй переменной, а вторая - первой. Если попытаться сделать такой обмен, сначала присвоив первой переменной значение второй, а второй - значение первой, ничего не получится.
Подписывайтесь на канал 👉@pythonofff
Веб-парсинг
Вот некоторые популярные библиотеки для парсинга:
• Beautiful Soup
• Scrapy
Пример - получить значение валюты по сравнению с долларом США
Подписывайтесь на канал 👉@pythonofff
Получаем календарь
В модуле calendar есть функция month(), которая вернет календарь указанного месяца в виде строки, как показано в примере. А функция calendar() выдаст целый год.
Если строки строки не устраивают, то в модуле есть много методов для получения самых разных итераторов. А еще там можно даже получить календарь в виде HTML.
Кстати, модуль является встроенным, отдельно его устанавливать не нужно.
Подписывайтесь на канал 👉@pythonofff
Генераторы списков очень классная особенность
Ещё одна классная особенность Python, дающая возможность быстро создавать списки. Такие выражения позволяют легко писать чистый код, который читается почти как естественный язык
Подписывайтесь на канал 👉@pythonofff
__repr__
Метод repr() позволяет определять строковое представление, предназначенное для программиста и удобное при использовании во время отладки, а метод str() позволяет определять понятное пользователю строковое представление, которое можно отображать в интерфейсе программы.
Подписывайтесь на канал 👉@pythonofff
Можно разбить строки в список
В этом случае разбиение происходит по символу пробела
Чтобы разделить по пустому месту, не нужно передавать в split никаких аргументов – используйте mystring.split().
Split также имеет второй параметр, называемый maxsplit, который определяет максимальное количество разбиений. По умолчанию он равен -1 (без ограничений).
Подписывайтесь на канал 👉@pythonofff
JMESpath – это язык запросов для JSON
Который позволяет получать необходимые данные из документа или словаря JSON. Библиотека доступна как для Python, так и для других ЯП, что расширяет ее возможности.
Подписывайтесь на канал 👉@pythonofff
Выгода до 20% с повышенным кешбэком с картой Пэй
Выбирайте категории с повышенным кешбэком баллами и получайте выгоду до 20%
Больше баллов Плюса с картой Пэй в июне
✅ Скидка до 30% на покупки в Яндекс Маркете
✅ Кешбэк 2% на покупки по QR с картой Пэй
✅ Кешбэк баллами 15% за поездки на такси во всех тарифах Яндекс Go
✅ Кешбэк 5% в категории в кафе и ресторанах с картой Пэй
✅ Кешбэк до 5% за покупки в супермаркетах
А еще больше категорий в приложении Яндекс Пэй или на сайте
Настройте выгоду под себя
Выбрать
#реклама 16+
plus.yandex.ru
О рекламодателе
Генерируем анекдоты
Не самый полезный, но весьма интересный пакет pyjokes выдает различные шутки и анекдоты на 6 языках. Но русский, к сожалению, в это число не входит.
Метод get_joke() возвращает строку, которая хранит в себе случайную шутку. В аргументы можно указать язык, по умолчанию стоит английский.
Также можно указать категорию в аргументах — особенно классно заходят штуки про Чак Норриса с пометкой 'chuck'.
Подписывайтесь на канал 👉@pythonofff
Выполнение html-скрипта в ячейке
%% html позволяет нам писать html-код.
Теперь ячейка будет действовать как html-редактор с html-выводом ячейки.
Следующий код состоит из простой таблицы, созданной в формате html. Заметьте, что html-вывод отображает ожидаемую таблицу.
Подписывайтесь на канал 👉@pythonofff
Как запустить собственную хотдожную в кратчайшие сроки?
ВкусON предлагает своим партнерам готовую, годами отработанную бизнес-модель, которая включает меню, необходимое оборудование, продуманную логистику, обучение вашего персонала и маркетинговую поддержку.
ВкусON - одна из самых крупных сетей быстрого обслуживания в РФ и СНГ: более 4400 точек.
Мы приглашаем вас подписаться на наш канал и постепенно знакомиться с нашей бизнес-моделью. Наша задача – помочь вам достичь финансового успеха в кратчайшие сроки и с минимальными вложениями.💰
Подписаться
#реклама
О рекламодателе
Именованные кортежи
Кстати, namedtuple из collections можно также использовать для хранения данных, как и классы данных, про которые я писал в предыдущем посте.
Из названия понятно, что в основе этой структуры лежит привычный всем кортеж. Если кто не помнит, то это как список, но неизменяемый.
Функция namedtuple создает новые классы-заготовки, на основе которых уже можно создавать объекты для дальнейшего хранения данных.
В аргументы мы передаем название нового класса и список атрибутов.
Здесь еще удобно то, что мастхэв функционал типа вывода на экран и сравнения похожих объектов также уже реализован.
Подписывайтесь на канал 👉@pythonofff
%pinfo
Предоставляет подробную информацию об объекте, который передается вместе с ним. Она похожа на функцию object?.
В следующем фрагменте я указал простую строку “a” вместе с %pinfo, чтобы получить подробную информацию о ней.
Подписывайтесь на канал 👉@pythonofff