Python академия
Open in Telegram
Учи Python быстро и легко. Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам. ✔ Подходит для прокачки навыков кодирования. По всем вопросам @evgenycarter
Show more7 171
Subscribers
-424 hours
-137 days
-4930 days
Posts Archive
7 171
Модули Dataset и DataLoader
Как и Tensorflow, PyTorch имеет несколько наборов данных, включенных в пакет (например, Text, Image и Audio). В этом руководстве будет использоваться один из таких встроенных наборов данных изображений — CIFAR10.
Эти датасеты очень распространены и широко задокументированы в сообществе ML. Они отлично подходят для прототипирования и сравнительного анализа моделей, поскольку вы можете сравнить производительность своей модели с тем, чего смогли достичь другие.
Подписывайтесь на канал 👉@pythonofff
7 171
Функция zip в Python
Функция zip принимает на вход в качестве аргументов итерируемые объекты, а возвращает итератор из кортежей, где i-й кортеж содержит i-й элемент из каждой последовательности.
Но если передать на вход итерируемые объекты неравной длины, то количество кортежей будет сформировано по самой короткой последовательности, а оставшиеся элементы в более длинных будут игнорироваться, что может привести к нежелательным результатам.
В python 3.10 в функцию был добавлен необязательный аргумент strict, который является флагом проверки входных итерируемых объектов на равенство их длин. В случае, если длины не равны, то будет выброшено исключение ValueError.
В случае же если требуется составить кортежи по всем элементам последовательности в независимости от равенства длин, в модуле itertools существует функция zip_longest. Данная функция работает точно также как zip, но заменяет отсутствующие элементы значением, переданным в fillvalue, которое по умолчанию равно None.
Подписывайтесь на канал 👉@pythonofff
7 171
Почему так происходит?
Программа проверяет, совпадает ли пользовательский ответ со строкой yellow. Однако — Yellow с заглавной буквой Y — это совершенно другая строка.
Вы можете легко исправить это, используя метод lower() и внеся небольшое изменение в программу.
Подписывайтесь на канал 👉@pythonofff
7 171
Валидация данных с Pydantic
Pydantic — это библиотека для парсинга и валидации данных, в котором атрибуты класса имеют статическую типизацию.
Эта типизация используется в момент создания обьекта класса для проверки значений.
Пакет хорош в ситуациях когда вам нужно распарсить какой-то json, и все это превращается в рутину: проверка структуры json, необходимых полей, значений и так далее.
Также имеется поддержка множества других типов данных, помимо стандартных, таких как почта, url адрес, номер платежных карт.
Полноценный пример есть на картинке выше. Документация находится здесь.
Подписывайтесь на канал 👉@pythonofff
7 171
Пример работы метода lower(): проверяем пользовательский ввод
Скрипт задает пользователю вопрос "What color is the sun?" («Какого цвета солнце?») и ждет от него ответа. Затем программа проверяет, совпадает ли ответ с "yellow" (желтый), и если да, то печатает "Correct!" («Правильно!»). Если пользователь введет другой ответ, программа напечатает "That is not the correct color!" («Это неправильный цвет!»).
Подписывайтесь на канал 👉@pythonofff
7 171
Строим графики
Для построения графиков в Python существует библиотека Matplotlib. Это мощный инструмент для визуализации данных.
Сначала нам нужен массив с данными, которые мы хотим изобразить на графике. Это может быть, например, список или numpy массив.
Далее метод plt.plot(data) принимает наши данные и строит график в виде точек с координатами из массива и обьединяет их линиями.
Метод plt.show() откроет графическое окно с изображенным графиком.
Подписывайтесь на канал 👉@pythonofff
7 171
Метод lower() возвращает новую строку
lower() возвращает новую строку. Этот момент логически вытекает из предыдущего. Следовательно, если вы хотите использовать результат работы метода в дальнейшем, вам нужно сохранить его в новую переменную.
Подписывайтесь на канал 👉@pythonofff
7 171
Выполняем код по расписанию
Часто от программиста требуется написать код, который должен выполняться в определенный промежуток времени или по расписанию. Для решения этой проблемы существует много решений, но одно из них — это библиотека aiocron.
Она позволяет просто описать в декораторе конфигурацию расписания, согласно которому метод будет запускаться. В примере выше функция attime будет выполняться каджую минуту с 6 утра до 10 вечера в рабочие дни недели. Подробнее о написании своих расписаний можно почитать тут.
Подписывайтесь на канал 👉@pythonofff
7 171
Что следует учитывать при использовании метода lower()
Метод lower() делает довольно простую вещь. Он создает новую строку, в которой все прописные буквы меняются на строчные. Но есть несколько моментов, о которых следует помнить при его использовании.
Строки неизменяемы
Строки являются неизменяемым типом данных. Это означает, что их нельзя поменять после создания, только перезаписать заново. Поэтому исходная строка после использования метода lower() остается неизменной.
Подписывайтесь на канал 👉@pythonofff
7 171
Цепочка исключений
Для формирования цепочек исключений используется ключевое слово from, после которого требуется указать ещё одно исключение. Это исключение будет подвязано к вызванному в атрибут __cause__ (поддерживает запись).
В результате, если вызванное исключение не обработано, то на вывод будут отправлены оба исключения.
Подписывайтесь на канал 👉@pythonofff
7 171
☝️ Чтобы научиться писать код, без основ ООП вам не обойтись. ООП — это фундамент для разработчиков.
25 апреля в 20:00 в OTUS.
👉 Вебинар «Основы ООП в Python»
На занятии эксперт Сурен Хоренян познакомит вас с созданием классов, изменяемостью экземпляров, передачей аргументов в инициализатор, наследованием и переопределением методов.
📌 В результате занятия:
- Научитесь создавать свои классы;
- Разберётесь с наследованием;
- Научитесь переопределять методы и обращаться к методам суперклассов.
Вебинар «Основы ООП в Python» приурочен к старту онлайн-курса «Специализация Python Developer»
👉 Для участия зарегистрируйтесь https://otus.pw/i6II/
7 171
Временные файлы
В стандартной библиотеке Python есть модуль tempfile, который содержит классы и методы для корректной работы со временными файлами и директориями.
Функция
TemporaryFile создает временный файл в системной директории и возвращает файлоподобный объект.
Созданный временный файл будет автоматически удален по закрытию файла или при выходе из контекстного менеджера.
Также другие процессы и приложения не смогут получить доступ к этому временному файлу.
Подписывайтесь на канал 👉@pythonofff7 171
Что такое строка?
Строка — это тип данных в Python. Строка записывается как последовательность символов, заключенная в одинарные или двойные кавычки.
Подписывайтесь на канал 👉@pythonofff
7 171
❓Как формулировать и проверять гипотезы для своего продукта?
Обсудим 28 апреля в 20:00 на открытом уроке «Проверка гипотез. Не А/В-тестированием единым» в OTUS. Вебинар приурочен к старту онлайн-курса «Продуктовая аналитика» в OTUS.
⚡️На занятии мы разберем:
— Что такое гипотезы, и как их правильно формулировать?
— Кому и когда подойдут А/В-тесты?
— Альтернативные способы проверки гипотез.
Вебинар подойдет аналитикам, менеджерам продукта и маркетологам, желающим повысить свою эффективность в работе с данными и улучшить качество продукта.
🔥В результате вебинара вы поймете, когда уместно проводить А/В тесты, а когда — нет, а также получите рекомендации, что делать, когда А/В тесты не подходят. А продолжить обучение вы сможете на курсе, сейчас возможны разные способы оплаты.
👉Для участия зарегистрируйтесь:
https://otus.pw/WPBIN/
Нативная интеграция. Информация о продукте www.otus.ru
7 171
PyAutoGUI
PyAutoGUI позволяет Python управлять мышью и клавиатурой для автоматизации взаимодействия с другими приложениями. Пакет работает в Windows, macOS и Linux на Python 2 и 3.
Из ключевого функционала можно выделить следующее:
— Передвижение курсора и нажатие на кнопки мыши;
— Набор текста, например для заполнения форм;
— Скриншоты, поиск указанных изображений на экране (например, иконки) и нажатие на них;
— Поиск приложения на экране, изменение размера его окна, перемещение по экрану и т. д.
Основные функции показаны в примере на картинке выше, остальное — в документации проекта https://pyautogui.readthedocs.io/en/latest/
Подписывайтесь на канал 👉@pythonofff
7 171
Как удалить ключ из словаря при помощи генератора
Генераторы словаря в Python — это быстрые однострочники, которые позволяют легко создавать словари.
Здесь важно понимать, что мы создаем новый словарь. Поэтому это не самый экономичный метод удаления ключа. Но если вы уверены, что ключ существует, а словарь не слишком велик, можно воспользоваться и генератором.
Подписывайтесь на канал 👉@pythonofff
7 171
Получаем версию Python
Во пакете sys есть удобная переменная version_info, которая хранит в себе версию Python, с помощью которого был запущен скрипт.
Проверка версии интерпретатора может быть полезна в случае, если вы используете какие-то фичи из более новых версий языка.
Подписывайтесь на канал 👉@pythonofff
7 171
Как использовать ключевое слово global в Python
По умолчанию Python думает, что внутри функции вы хотите использовать локальную переменную.
И когда мы сначала пытаемся вывести значение переменной, а затем повторно присваиваем значение переменной, к которой мы пытаемся получить доступ, Python запутывается.
Подписывайтесь на канал 👉@pythonofff
7 171
Аргументы командой строки
При запуске программ через терминал можно указывать аргументы через пробел. В Python список этих аргументов хранится в переменной argv во встроенном модуле sys.
Первым элементом всегда является имя запускаемого скрипта, вторым и далее — непосредственно сами аргументы.
Подписывайтесь на канал 👉@pythonofff
7 171
Обрабатываем естественный язык
TextBlob — удобный пакет для обработки текста. Он предоставляет простой API для погружения в общие задачи обработки естественного языка (NLP), такие как анализ тональности, пометку частей речи, перевод и многое другое.
Здесь особенно круто, что к объектам класса TextBlob можно применять методы строк (upper, split, format и т. д.) и в целом обращаться с ними как с обычными строками.
Документация находится здесь, но некоторые примеры есть и на картинке выше. Еще важно, что несколько функций, например translate(), требуют подключения к интернету.
Подписывайтесь на канал 👉@pythonofff
