Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
pprint - Стандартная функция Python
Print() делает своё дело. Но если попытаться вывести большой вложенный объект, результат будет выглядеть не так уж и приятно.
Тут на помощь приходит модуль из стандартной библиотеки pprint (pretty print). С его помощью можно выводить объекты со сложной структурой в читабельном виде.
Подписывайтесь на канал 👉@pythonofff
Обучаем Java-разработчиков оплата после выхода на работу
В Kata Academy можно выучиться на Java-разработчика бесплатно, а заплатить уже после трудоустройства по специальности из фактической зарплаты.
Если задуматься, то все в выигрыше:
— ты получаешь работу в Москве или Санкт-Петербурге с хорошей зарплатой, мы получаем процент за инвестиции в тебя;
— в наших интересах научить тебя так, чтобы твоя зарплата была как можно выше;
— мы прокачиваем твои навыки еще 2 года после курса: проводим выездные мероприятия и мастер-классы — и доходы наших выпускников растут;
— мы не зависим от банков и их рассрочек — кризис не повлиял на доступность курсов.
Чтобы попасть на курс, нужно выполнить небольшое тестовое задание. Переходи по ссылке и оставляй заявку!
Узнать больше
#реклама 16+
kata.academy
О рекламодателе
Разница между == и is
Многие разработчики не понимают разницу этих двух операторов сравнения. Из-за неправильного использования == и is в приложениях могут возникнуть странные ошибки.
Оператор == проверяет равенство значений двух объектов. А оператор is проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памяти.
Но Python в целях производительности кеширует малые числа и короткие строки, поэтому возможны некоторые казусы, как в примере выше.
Подписывайтесь на канал 👉@pythonofff
Ответьте на 1 вопрос и книги ваши до конца весны за 0 ₽
Более 250 000 книг и аудиокниг разных жанров в Букмейте. Попробуйте бесплатно!
Попробовать
#реклама 18+
bookmate.ru
О рекламодателе
Нужны ли декораторам аргументы?
Есть множество проблем, которые можно решить с помощью декораторов, и некоторые из них были рассмотрены в предыдущих уроках данного курса. Однако в некоторых ситуациях могут пригодиться и аргументы. Рассмотрим в качестве примера знаменитый декоратор app.route из веб-фреймворка Flask
Подписывайтесь на канал 👉@pythonofff
Ищем разработчика PHP senior с зарплатой от 150 000₽
💻IT-компания Xpage – это компания для тех, кто любит бросать себе вызов!
✅Ты будешь заниматься комплексной разработкой от автономных корпоративных сайтов до интегрированных систем
✅ Уровень решений — от простых до высокосложных с инфраструктурой на основе продуктов 1С:Битрикс
✅ Проектируем и проводим крупные внедрения для среднего бизнеса и больших федеральных компаний
В нашей компании люди — главная ценность. Мы любим клиентов, но наш приоритет — сотрудники❤️
У нас:
— Современный офис в сердце Челябинска
— Адекватное вознаграждение
— Свобода творчества и самовыражения
— Комфортная рабочая обстановка
Пиши нам, мы всегда рады новому знакомству!
Уверены, что наше общение будет полезно:)
Подать заявку
#реклама
xpage.ru
О рекламодателе
Бесконечность
Вообще float является крайне интересным типом данных и не перестает удивлять своими особенностями. Про значение Not a Number мы уже писали, а вот сегодня поговорим про infinity.
Строковые литералы 'inf' и 'infinity' можно конвертировать в float, и в результате получается значение бесконечности. Для отрицательной "бесконечности" нужно поставить знак минуса перед словом.
Такой прием может быть полезен в коде, где требуется хранить в переменной самое большое или самое маленькое числовое значение для дальнейшего сравнения.
Подписывайтесь на канал 👉@pythonofff
Обзор простых декораторов в Python
Прежде чем мы углубимся в новую территорию, давайте рассмотрим, как работают простые декораторы из первого урока. Ниже представлен пример, введенный нами в оболочку IDLE Python. Попробуйте поэкспериментировать, запустите IDLE оболочку и введите код сами.
Подписывайтесь на канал 👉@pythonofff
Уютная Москва. Квартиры в новостройках
Нет времени мечтать – пора покупать. Свою квартиру в Москве!
- цены от 6 млн ₽
- со скидкой до 7 %
- ипотека – 1 ₽ в месяц
Выберите жильё в красивом и современном районе рядом с метро. Возле дома – школы, детские сады, магазины, центры услуг и развлечений.
Больше информации – на консультации
Узнать больше
Проектная декларация на сайте https://наш.дом.рф/. Застройщик: А101
#реклама
a101estate.ru
О рекламодателе
Удобная работа с файловыми путями
В стандартной библиотеке есть максимально удобный пакет pathlib, позволяющий осуществлять различную работу с файловыми путями.
Для представления пути к файлу есть класс Path, с объектами которого уже можно производить операции. Например, методы exists() и is_dir() проверяют, существует ли файл и является ли он директорией.
Но самой классной фичей является замена os.path.join() на более удобный и элегантный вариант с использованием слэшей, как показано на картинке.
Таким образом, пакет pathlib может стать частичной заменой os в некоторых случаях при работе с файловыми путями.
Подписывайтесь на канал 👉@pythonofff
Для чего используется *args в Python?
В Python форма *args с одной звездочкой используется в качестве параметра для отправки функциями списка аргументов, которые не являются ключевыми словами с переменной длиной. Стоит отметить, что звездочка (*) является важным элементом, так как args представляет собой общепринятую идиому, хотя она и не принуждается к использованию языком.
Подписывайтесь на канал 👉@pythonofff
Полный курс Java-разработчик с 0 до PRO за 10 месяцев!
IT-индустрия манит перспективами и высокими зарплатами, но на рынке по-прежнему не хватает квалифицированных специалистов. Бизнес нуждается в кадрах, способных сразу приступить к решению задач. Более 5000 вакансий требуют знания Java.
Хекслет предлагает серьёзную подготовку для тех, кто стремится стать успешным инженером. Вы получите инструменты и навыки, необходимые для успешного трудоустройства.
Не сомневайтесь в своих силах! 80% студентов, сменивших профессию благодаря Хекслету, добились успеха и стали разработчиками.
✨Обновлённый курс марта 2024 года
Пройдите 5 бесплатных уроков и получите скидку 10% на курс
Перейти на сайт
#реклама 16+
ru.hexlet.io
О рекламодателе
Делаем планировщик задач
К моему удивлению, далеко не все знают про пакет schedule, который позволяет планировать задачи и повторять их через промежуток времени.
Основной его плюс в том, что он максимально интуитивный и имеет гибкий функционал. А еще schedule не требует внешних зависимостей и сам в целом легковесный.
Здесь на самом деле даже объяснять особо нечего, логика методов в этом пакете понятна на примерах.
Подписывайтесь на канал 👉@pythonofff
Определение имени функции изнутри этой функции в Python
Возникает ситуация, когда при написании кода на Python требуется определить имя функции изнутри этой же функции. Это может быть полезно, например, при отладке программы или при логировании, когда важно знать, какая функция была вызвана.
Рассмотрим простой пример. Допустим, есть модуль mymodule и в нем функция myfunc. И нужно, чтобы при вызове mymodule.myfunc() эта функция могла выводить свое имя.# mymodule.py
def myfunc():
print("my name is", __myname__) # как определить __myname__?
Как видно из примера, требуется найти способ определить имя функции myfunc внутри самой этой функции.
В Python нет встроенного способа определить имя функции изнутри этой функции, но это можно сделать с помощью метода name объекта функции.# mymodule.py
def myfunc():
print("my name is", myfunc.__name__)
В этом случае при вызове функции myfunc она выведет «my name is myfunc».
Такой способ работает, потому что в Python функции являются объектами, и у всех объектов функции есть атрибут name, который содержит имя функции.
Обратите внимание, что такой способ работает только тогда, когда функция вызывается по имени, которое было использовано при ее определении. Если же функцию присвоить другой переменной и вызвать по этому новому имени, то myfunc.__name__ все равно вернет первоначальное имя функции:# mymodule.py
def myfunc():
print("my name is", myfunc.__name__)
anothername = myfunc
anothername() # выведет "my name is myfunc"
Таким образом, с помощью метода name можно определить имя функции изнутри этой функции в Python.
Подписывайтесь на канал 👉@pythonofff
❓ Хотите прокачать скиллы в автоматизации тестирования на Python?
Ждем вас на бесплатном вебинаре «Введение в PyTest» от OTUS
👉 Для участия зарегистрируйтесь: https://otus.pw/msTWD/?erid=2Vtzqwr6m4t
☝ На вебинаре вы вместе с опытным экспертом:
- познакомитесь с фреймворком PyTest и посмотрите, как он используется для написания автоматизированных тестов;
- поработаете с основным инструментом PyTest — фикстурами;
- научитесь грамотно их писать, чтобы тесты были стабильными и легко поддерживаемыми.
⏰ Встречаемся 25 апреля в 20:00 мск в рамках курса «Python QA Engineer».
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
inspect добро пожаловать за кулисы
Модуль inspect пригодится вам для использования того, что происходит за кулисами в Python. Вы так же можете вызывать его методы в них же!
Снизу пригодится метод inspect.getsource() для вывода его собственного исходного кода. Еще используется метод inspect.getmodule() для вывода модуля, в котором его утвердили.
Подписывайтесь на канал 👉@pythonofff
Скачиваем вебсайты целиком
Максимально простой, но при этом мощный пакет pywebcopy поможет вам клонировать отдельные веб-страницы или даже целые сайты.
Функция save_webpage скачивает страницу по указанной ссылке, в аргументы также можно передать путь, куда сохранить результат.
А вот save_website дает возможность скачать целый вебсайт рекурсивно. Например, если сайт представляет из себя блог, то скрипт скачет все статьи, которые есть на сайте.
Но здесь надо быть аккуратнее, подобная рекурсивная загрузка отправит много запросов к серверу и может сильно нагрузить его, если на сайте много страниц.
Подписывайтесь на канал 👉@pythonofff
Получите 6000 бонусов на такси за первую командировку
Получите бонусы на такси при оформлении первой деловой поездки в Командировках.
Всё, что нужно для командировок, в одном сервисе: жильё, транспорт и питание. Поиск и бронирование в одном окне.
Закрывающие документы и отчёты создаются автоматически и доступны в личном кабинете. Поддержка в оформлении и в поездках 24/7.
Узнать больше
#реклама
business.go.yandex
О рекламодателе
Как отслеживать url в формах на django?
Чтобы отслеживать URL в формах Django, вы можете использовать метод get_absolute_url()
в моделе и функцию reverse() для построения URL.
В моделе добавьте метод get_absolute_url() для создания URL объекта. Например:from django.urls import reverse
class YourModel(models.Model):
# поля модели
def get_absolute_url(self):
return reverse('your-view-name', args=[str(self.id)])
Создайте HTML-шаблон для формы, в которой вы можете использовать action для указания URL, куда будет отправляться данные формы. Например:<form action="{{ object.get_absolute_url }}" method="post">
<!-- поля формы -->
<button type="submit">Submit</button>
</form>
В файле urls.py определите путь к вашему представлению. Укажите имя представления, чтобы использовать его в методе get_absolute_url() вашей модели.from django.urls import path
from . import views
urlpatterns = [
path('your-url/<int:pk>/', views.YourView.as_view(), name='your-view-name'),
]
В представлении (views.py) реализуйте обработку формы. Например:from django.views.generic.edit import CreateView
from .models import YourModel
class YourView(CreateView):
model = YourModel
fields = '__all__'
Теперь, когда вы отправляете форму, она будет отправляться на конкретный URL, который вы определили в методе get_absolute_url()
вашей модели.
Подписывайтесь на канал 👉@pythonofff
Получаем данные о системе
Кроссплатформенная библиотека psutil позволяет получать информацию о процессоре, памяти, диске, сети, датчиках и запущенных процессах в системе. Примеры базового использования показаны на картинке.
Если говорить про практические применение, psutil полезен в основном для мониторинга системы, ограничения ресурсов процессов и управления запущенными процессами.
Помимо привычных Windows, MacOS и Linux, библиотека также поддерживает системы FreeBSD, OpenBSD, NetBSD, Sun Solaris и AIX.
Подписывайтесь на канал 👉@pythonofff
Создание декоратора с аргументами
Здесь видно, что декоратор my_decorator не принимает никаких аргументов, во время декорирования функции, но имплементация этого декоратора принимает аргумент f, через который Python передает ссылку на декорированную функцию.
Подписывайтесь на канал 👉@pythonofff
Бесплатный 14-дневный онлайн-курс по дизайну интерьеров
Давно хочешь работать в творческой сфере и иметь доход от 100 тыс/мес? Тебе не нужно уметь рисовать или прямо сейчас принимать решение. Просто приходи и попробуй! Вдруг понравится создавать уютные интерьеры и ты найдешь в этом себя.
Регистрируйся на практический курс по дизайну интерьера с личным наставником. Осталось 7 мест!
Зарегистрироваться
#реклама 16+
diskill.ru
О рекламодателе
Отправляем электронные письма
SMTP (Simple Mail Transfer Protocol) — это протокол, позволяющий отправлять электронные письма. В стандартной библиотеке есть пакет smtplib, реализующий его поведение.
Для подключения к серверу будем использовать класс SMTP_SSL, который включает в себя и шифрование. В его аргументы передаем адрес сервера и порт. Авторизация происходит с помощью метода login, в который передаем соответственно логин и пароль.
Отправлять письма можно одноименным методом sendmail, который принимает адреса отправителя и получается, а также сам текст. В конце программы следует закрывать соединение с помощью метода quit().
Но здесь еще следует обратить внимание на то, что некоторые почтовые сервисы могут не разрешить так сразу подключаться к их серверам и производить операции. В нашем случае пришлось немного повоевать с Gmail.
Подписывайтесь на канал 👉@pythonofff
Регистрация функции с помощью декораторов в Python
Самый простой тип декоратора используется для регистрации функции в качестве обработчика события. Данный шаблон очень распространен в приложениях на Python, так как он позволяет двум или более подсистемам взаимодействовать, не зная ничего друг о друге. Данный процесс известен как «несвязанный» дизайн.
Подписывайтесь на канал 👉@pythonofff
Ответ на вопрос и Музыка ваша 90 дней бесплатно
Яндекс Музыка 90 дней бесплатно (вместо 299 ₽ в месяц) для вас и 3-х ваших близких.
Попробуйте сейчас!
Попробовать
#реклама 16+
music.yandex.ru
О рекламодателе
Получаем текст с картинки
У Google есть система Tesseract, которая позволяет парсить текст с картинок с помощью оптического распознавания символов.
И в качестве обертки над их системой, был создан пакет pytesseract, который максимально удобно и легко использовать.
Для того, чтобы получить текст с картинки, нужно вызвать метод image_to_string. Если вас интересует текст на русском, то следует указать аургмент lang как 'rus'.
Еще важно, что для открытия картинок рекомендуется использовать pillow, хоть и имеется возможность просто указать путь к файлу в виде строки.
Подписывайтесь на канал 👉@pythonofff
Потребление памяти при сортировке в Python
Сначала сравним, сколько памяти потребляет каждая из функций. Для отслеживания максимального использования памяти, используем встроенный модуль resource. Так как данный модуль позволяет отслеживать использование памяти для одного потока, мы запускаем сортировку списка в отдельном потоке. Также можно использовать FunctionSniffingClass, включенный в репозитории.
Подписывайтесь на канал 👉@pythonofff
Выходные заканчиваются, вы такие «Мааало, давайте ещё»
...И снова утро субботы!
Календарь так не работает. А вот сервис Яндекс Путешествия попросили продлить акцию «Туристический кешбэк» — и они продлили.
Бронируйте отель до 27 апреля, отдыхайте хоть на майские, хоть под Новый год — и вам вернётся до 20% баллами Плюса. Максимум — 3000 баллов.
Выбрать
#реклама
travel.yandex.ru
О рекламодателе
Резюме статьи
Gensim — отличный пакет Python для большого количества задач нейролингвистического программирования (НЛП). Он включает в себя довольно надежную функцию резюмирования, которой достаточно легко пользоваться. Она реализует разновидность алгоритма TextRank.
Для использования этой функции нам нужна лишь одна строчка кода
Подписывайтесь на канал 👉@pythonofff
Как создавать списки в Python
Чтобы создать новый список, сначала дайте ему имя. Затем добавьте оператор присваивания (=) и пару квадратных скобок. Внутри скобок добавьте значения, которые должны содержаться в списке.
Подписывайтесь на канал 👉@pythonofff