№ 4931117861 Публикуем интересные/полезные фичи/библиотеки языка. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorpy
Работаем с датой и временем
С помощью следующего фрагмента кода вы сможете с легкостью узнать год/месяц/день/час/минуту/секунду настоящего времени.
Хотели узнать больше про инженерную команду Selectel?
Спешим познакомить вас с новым проектом ребят!
На этой страничке вы найдете:
— Ключевые ценности, на которые инженеры Selectel опираются в работе
— Подробную информацию о жизни ребят в компании: как устроены процессы и какие технологии используются
— Чем живут технические комьюнити
А также познакомитесь с базой знаний инженеров: докладами и статьями на Хабре!
Скорее переходите и читайте😉
Реклама, АО «Селектел», ИНН: 7810962785, ERID: 2VtzqvmVXKw
Преобразование PNG в PDF
Для начала установим библиотеку img2pdf - pip install img2pdf.
img2pdf— это пакет Python с открытым исходным кодом для преобразования изображений в формат pdf.
Подробнее ознакомиться с библиотекой img2pdf можно здесь.
Как можно объявить несколько присваиваний в одном выражении?
Оба варианта на картинке. В первой строке мы присваиваем переменным a, b, c соответственно значения 3, 4, 5, а во второй строке все переменные получают значение 3.
Передаём содержимое словаря
Две звездочки перед словарём позволяют передать его содержимое в функцию как аргументы. При этом ключи словаря — имена аргументов.
Это полезно при обработке словарей, а также для написания функций-обёрток.
Узнаем отношение доллара к биткоину
С помощью следующего фрагмента кода мы узнаем что в настоящее время 5 тысяч долларов равняется 0.29 биткоина.
forex-python позволяет получать данные о курсе валют в определённое время и конвертировать одну валюту в другую.
Установка пакета - pip install forex-python.
Функция readline()
Функция readline() используется для построчного чтения содержимого файла. Она используется для крупных файлов. С ее помощью можно получать доступ к любой строке в любой момент.
Допустим у нас есть файл test.txt с несколькими строками:
This is line1.
This is line2.
This is line3.
Посмотрим, как функция readline() работает в test.txt.
Проверяем скорость интернета
Speedtest — пакет от создателей того самого сайта для проверки скорости интернета прямо на Python.
У объекта класса Speedtest
методы download()
и upload()
выдают соответственно скорость скачивания и загрузки данных.
Методы отдают результат в байтах, поэтому для наглядности в примере данные переводятся в мегабайты при выводе. Документация, как всегда, по ссылке.
🐍 3 классических паттерна проектирования в Python: синглтон, декоратор и итератор
Паттерны в Python – это шаблоны для решения задач, которые часто встречаются в практике программиста. Они представляют из себя огромный набор инструментов. В этом материале вы познакомитесь с самыми главными из них.
https://proglib.io/p/3-luchshih-patterna-proektirovaniya-v-python-singlton-dekorator-i-iterator-2022-02-03
Наследование
Ключевая механика ООП, позволяющая создать новый класс на основе уже имеющегося. При таком создании класса за основу берутся все атрибуты и методы родительского класса.
В примере на картинке класс Ferrari является дочерним классом Car.
Проверяем отсутствие общих элементов множества и последовательности
Метод sets.isdisjoint() позволяет проверить множество sets на отсутствие общих элементов с последовательностью other. Метод возвращает True, если множество sets не имеет общих элементов с итерируемым объектом other, если имеются общие элементы то вернет False.
Синтаксис:
sets.isdisjoint(other)
Параметры:
other - объект поддерживающий итерацию (кортеж, символ или подстрока).
sets - множество frozenset или set.
#вопросы_с_собеседований
Каким образом вы бы могли вывести на экран все функции в модуле?
Для перечисления функций в модуле используется метод dir(). На картинке представлено решение данного вопроса.
14–15 декабря VK Tech проведёт Weekend Offer для Python-разработчиков и инженеров. Это шанс присоединиться к работе над крупнейшей облачной платформой страны VK Cloud и вместе с VK Tech помогать бизнесу расти.
Узнайте больше о вакансиях и откликайтесь здесь.
Флоу простой: оставляете заявку, общаетесь с рекрутерами, выбираете слоты для собеседований и проходите их в назначенное время. О результате VK Tech сообщит вскоре после финального интервью.
Откликайтесь до 13 декабря включительно.
Получаем геолокацию с помощью Python
В нашем примере мы получаем геолокацию Пизанской башни по координатам широты и долготы.
Подробнее про этот трюк можно почитать здесь.
Скачиваем вебсайты целиком
Максимально простой, но при этом мощный пакет pywebcopy
поможет вам клонировать отдельные веб-страницы или даже целые сайты.
Функция save_webpage
скачивает страницу по указанной ссылке, в аргументы также можно передать путь, куда сохранить результат.
А вот save_website
дает возможность скачать целый вебсайт рекурсивно. Например, если сайт представляет из себя блог, то скрипт скачет все статьи, которые есть на сайте.
Но здесь надо быть аккуратнее, подобная рекурсивная загрузка отправит много запросов к серверу и может сильно нагрузить его, если на сайте много страниц.
@cached_property
: Кешируем результат функции как атрибут
В Python 3.8 в модуле functools появился новый мощный декоратор - @cached_property
. Он может превратить метод класса в свойство, значение которого вычисляется один раз, а затем кэшируется как обычный атрибут на протяжении всего существования экземпляра.
В приведенном выше коде мы оптимизировали метод area через свойство @cached_property
. Таким образом, нет повторных вычислений для circle.area одного и того же неизменного экземпляра.
Управление экспортами
В некоторых языках имеются очень чёткие механизмы экспорта из модулей переменных, методов, интерфейсов. К примеру в Go экспортируются только сущности с именами с большой буквы. В Python другая картина — экспортируется всё. Но только не при использовании атрибута __all__
.
В примере на картинке экспортируется только функция hja. А если оставить атрибут __all__
пустым, при попытке экспорта из модуля ничего не будет экспортировано, но возникнет ошибка AttributeError
.
Подготовка к Новому году – это волнительно и приятно.
Но давайте совместим приятное с полезным.
Например, создадим телеграм-бот для новогодних поздравлений!
18 декабря на вебинаре «Телеграм-бот своими руками» вы узнаете:
- Как устроен телеграм-бот
- Как создать телеграм-бот на сервере Telegram
- Как написать бэкенд для телеграм-бота на базе фреймворка Aiogram
Мастер-класс проведёт Кирилл Панфилов, преподаватель OTUS, классный программист и автор ютуб-канала [dirty-python]
Приглашаем начинающих Python-разработчиков, разработчиков на Jave и других языках, а также всех, кто интересуется разработкой и IT.
Результаты вебинара: функционирующий бот, прокачка навыков программирования на Python, доступ к закрытому сообществу, а ещё – скидка на курсы и полезные материалы.
18 декабря, 19:00 МСК
Записаться на вебинар - https://otus.pw/dvll/?erid=LjN8K7hvn
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Получаем историю браузера 😏
browser-history— это простой, не требующий никаких зависимостей, удобный для разработчиков пакет Python для извлечения (почти) всей истории любого браузера на (почти) любой платформе.
Документация пакета лежит здесь.
Превращаем PDF файл в аудиокнигу
Для выполнения данной задачи нам понадобятся 2 библиотеки: pyttsx3 и PyPDF2.
Первая потребуется для преобразования текста в речь.
Вторая - для работы с PDF-файлами.
Подробнее с данным примером вы можете ознакомиться здесь.
#вопросы_с_собеседований
Что такое поверхностная копия?
Поверхностная копия используется при создании нового типа экземпляра и сохраняет значения, скопированные в новом. Также она используется для копирования ссылочных указателей. Это означает, что когда мы копируем объект в другую переменную, он будет привязан.
✅️ GitHub теперь в Telegram!
Подписывайтесь: @GitHub
Аннотации типов
Python имеет динамическую типизацию, и многие часто ругают за это язык.
Однако в новых версиях добавили поддержку аннотаций типов переменных, полей классов, аргументов функций и возвращаемых значений, что призвано упростить чтение и понимание кода.
Учишь Python, но как дело доходит до собственного кода — всё, кирдык? 😥
На форумах только одно: «Больше практиковаться!» А толку? Ноль понимания и никакой поддержки от профи…
Плавали - знаем)) Поэтому специально для тебя - чат для Python-щиков 🤝
Что получишь?
1️⃣ Сможешь задавать любые вопросы без страха и осуждения и получать ответы за минуты, а не часы поиска в инете
2️⃣ Регулярные плюшки в виде стримов от препода с 15-ти летним опытом
3️⃣ Общение с единомышленниками и заряд мотивации
➡️ А еще, забирай в закрепе БЕСПЛАТНЫЙ вводный курс по Python
Короче, всё для прокачки! Залетай к нам — ссылка на чат (тык)
Узнаем размер файла с помощью Python
C помощью метода os.path модуля os мы можем получить размер любого нашего файла в байтах.
📶 С 1 декабря для граждан РФ открыт доступ к платным материалам по программированию
Вот отсортированные базы с тонной материала(книги, курсы, ресурсы и гайды). Выбирай своё направление:
👩💻 Frontend 👩💻 PHP
⚙️ Backend 👩💻 Моб. Dev
📱 GitHub 👩💻 GameDev
🤓 Всё айти 👩💻 DevOps
👩💻 Python 🖥 Data Science
👩💻 Java 🐞 Тестирование
👩💻 C# 🤔 Хакинг & ИБ
👩💻 С/С++ 📱 Маркетинг
🖥 SQL 🖥 Дизайн
👩💻 Golang 👣 Rust
Скачивать ничего не нужно — все выложили в Telegram с доступом по ссылке
Генерирование случайных предложений с помощью Python
Вы можете использовать random.choiceв, а затем объединить выбранный список с помощью join.
В нашем примере мы задали несколько списков с существительными, глаголами, прилагательными и наречиями и составили предложения, каждое из которых включает в себя 1 элемент из каждого списка слов.
Функция iter и два аргумента
У функции iter есть ещё один вариант использования. Итератор можно получить, если в iter передать первым аргументом обычную функцию, которая при вызове будет возвращать очередной элемент последовательности, а вторым — значение, при возврате которого этой функцией итерация должна закончиться. Давайте посмотрим на примере(см картинку).
Использование lambda в примере необходимо, поскольку переданную в iter функцию должно быть можно вызывать без аргументов. Сконструированный таким образом итератор для получения следующих элементов вызывает переданную функцию снова и снова до тех пор, пока функция не вернёт значение для остановки, при котором итератор генерирует исключение StopIteration, и итерация заканчивается.
❓Что такое абстракция и почему она важна в программировании?
Выбор правильных абстракций помогает для написания качественного кода.
✅ Регистрируйтесь на открытый урок «Абстракция как математический объект» и вы узнаете как абстракции помогают упростить сложные системы и сделать код более понятным.
Урок посвящен курсу «Математика для программистов» от Otus — лучшие практики, после изучения которых вы сможете быстрее изучать новые языки программирования и фреймворки.
👉 Регистрация https://otus.pw/auvn/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Как написать игру на Python: 5 игровых движков
Туториал для тех, кто хочет сделать игру на Python (и пока не изучать Unity или Unreal Engine). Напишем код простой игры со сбором монет и сравним на трех различных движках, а также сделаем пару игр в стилях Interactive Fiction и визуального романа.
Смотреть статью