Python академия
Open in Telegram
Учи Python быстро и легко. Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам. ✔ Подходит для прокачки навыков кодирования. По всем вопросам @evgenycarter
Show more7 172
Subscribers
No data24 hours
-117 days
-4230 days
Posts Archive
7 172
👉 Подключайтесь 24 августа в 20:00 в OTUS к открытому уроку «Работа с пакетами в Python с помощью pip и poetry».
💪 Практически любой современный язык программирования обладает экосистемой пакетов, которая позволяет разработчику использовать готовые модули для решения задач. Работы с системой пакетов осуществляется через пакетные менеджеры. В экосистеме Python это — pip и poetry.
На занятии разберем оба пакетных менеджера, поговорим про основные сценарии использования, обсудим различия, узнаем, в каких случаях можно обойтись решением попроще, а в каких случаях требуется более продвинутый подход.
В результате урока вы узнаете различия между пакетными менеджерами pip и poetry, научитесь применять пакетные менеджеры в работе.
👉 Для участия и получения записи зарегистрируйтесь https://otus.pw/Yt65/
📌 Вебинар приурочен к старту онлайн-курса «Python Developer» для начинающих Python-разработчиков.
Нативная интеграция. Информация о продукте www.otus.ru
7 172
Очистка элементов в последовательности
Встроенный модуль itertools был создан для работы с более сложными случаями итераторов. Плюс модуля в том, что он быстро работает и оптимизирован в плане памяти.
Иногда возникает необходимость удалить ненужные объекты в последовательности. Как раз для этого и используют itertools, а именно метод compress.
Первым аргументом передается какой-либо контейнер, например список. Вторым аргументом — логические значения, соответствующие элементам в последовательности.
Если логическое значения равно True или 1, то элемент сохраняется в последовательности, в противном случае — удаляется из нее.
Подписывайтесь на канал 👉@pythonofff
7 172
Как вывести все методы класса в Python?
Для того, чтобы вывести все методы класса, Вы можете воспользоваться методами dir(), callable(), getattr()
Подписывайтесь на канал 👉@pythonofff
7 172
Python для инженеров: приглашаем на курс 🐍
Любовь к автоматизации рождается не сразу. Сначала мы переводим одну задачу в автоматический режим, затем — вторую… А в итоге — перекраиваем свой рабочий день вдоль и поперёк и занимаемся интересными задачами.
Так бывает, когда инженер использует в работе Python. Именно этой радости IT-специалиста учим на курсе «Python для инженеров» ⚡️
Спикеры курса: они знают, как спасти трудочасы от скуки и однообразия
✔️ Денис Наумов, Techlead, Data Engineer в Skyeng
✔️ Антон Рязанцев, Expert Software Developer in Test, Align Technology
Эксперты расскажут о нюансах работы с библиотекой Python, помогут понять принципы автоматизации с помощью Docker, Gitlab, Prometheus, Kubernetes.
Курс в формате потока стартует 28 августа. Узнать программу и записаться вы можете по ссылке ✨
7 172
Функции высшего порядка
Функции высшего порядка - функции принимающие или возвращающие другие функции. Очень говорящее название, запомнить очень просто
Чуть ранее мы говорили про lambda, они очень хорошо взаимодействуют с высшими функциями. Про одну из них мы говорили - map(). Она может принимать в себя лямбду, но это не дает такой большой функциональности.
Еще одна функция-итератор - filter()
Она поможет отфильтровать списки или итераторы. Первым принимает функцию, если она возвращает True, то пропускает элемент, вторым аргументом принимает список или итератор.
Не забывайте комбинировать функции!
Подписывайтесь на канал 👉@pythonofff
7 172
Конструктор класса
У классов практически во всех языках есть конструкторы — это такие специальные методы, которые вызываются автоматически и инициализируют экземпляр класса.
В Python конструкторы в классах имеют название __init__(), и их почти всегда переопределяют. Делается это для того, чтобы назначить свойства объекту и выполнить предварительные действия.
Подписывайтесь на канал 👉@pythonofff
7 172
Анонимные функции
Часто функции нужны только один раз, причем короткие. И избыточно создавать под них функцию и придумывать ей имя.
Для таких случаев существуют лямбда функции, так выглядит их создание:
<аргументы>: <выражение>
Такие функции обязан знать каждый программист, их применение сильно сокращает код.
Подписывайтесь на канал 👉@pythonofff
7 172
Бесконечные списки
Мы уже рассказывали про важность копирования списков. Но именно из-за такой процедуры появляется возможность создавать бесконечные списки. Дойти до конца такого списка невозможно, при этом он потребляет минимум памяти. Попробуйте создать сами.
На картинке (см. выше) видно создание. А затем мы пробуем модуль copy, чтобы узнать сможет ли он сделать глубокое копирование бесконечного объекта?
Применить знание особо негде, но данное задание помогает понять работу списков. Возможно, такой вопрос задаст вам рекрутер на одном из собеседований.
Подписывайтесь на канал 👉@pythonofff
7 172
Оформление кода
Все вы знаете, что в python есть своя философия. Именно отсюда берутся определенные правила и стандарты. В пайтон такое соглашение назвали PEP 8 (читается - пэп).
Соответствие пепу позволяет видеть основную структуру вашего кода другим разработчикам. Не нужно привыкать к другому оформлению кода. Если вы привыкли как-то оформлять код, а увидели что-то совершенно другое, то вы поймете.
Официальная документация по PEP 8.
Основные моменты:
Используйте пробелы, разрешается использование табов, но смешивание запрещено. Отступ соответствует 4 пробелам. Хорошие редакторы кода автоматически заменяют табы на пробелы.
Вокруг операторов +, -, =, *, /, ** должны быть пробелы.
Строка не должна превышать 101 символа
Импорты можно делать только по одному на строку! При этом из одного модуля можно доставать несколько нужных объектов. Порядок тоже важен:
- стандартные библиотеки;
- сторонние;
- созданные вами
Подписывайтесь на канал 👉@pythonofff
7 172
Символы экранирования
При выводе строки иногда появляются различные непонятные нам символы вроде '\n'. Подобные записи всегда начинаются с '\' (обратный слеш), и могут состоять из нескольких символов, но Python считает их за один. Если эту тему изучить, то можно делать интересные вещи в одну строчку, либо красиво оформлять вывод.
Вод пример самых частых символов:
\\ - Сам символ обратного слеша (остается один символ \)
\' - Апостроф (остается один ')
\" - Кавычка (остается один символ ")
\n - Новая строка (перевод строки)
\r - Возврат каретки
\t - Горизонтальная табуляция
Но для тех, кто этого не знает могут возникнуть проблемы. Например, если вы попробуете задать адрес на вашем компьютере. А он состоит из символов '/', вам интерпретатор выдаст ошибку.
Можно, конечно, воспользоваться нашим знанием и написать, экранировав все слеши, но есть более простой способ отменить экранирование - поставить r перед строчкой.
Подписывайтесь на канал 👉@pythonofff
7 172
Заглушки
Для создания пустых функций и классов есть сразу два способа соответствующих правилам PEP: "pass" и "...". Предпочтительнее использовать первый вариант. Он означает буквальным счетом пустоту, даже применить функции dir() или help() не получится. А вот три точки - объект.
Их применение более широкое. Мы видели точки, когда выводили бесконечный список. Но то, был просто вывод, а не наш объект. Ellipsis применяется так же для создания пустых списков. Он показывает, что внутри не что-то одно, а много. На практике его используют лишь в документации и при создании все тех же пустых функций.
На картинке пример программы проверяющий пароль от юзера. Сохранение в БД мы еще не решили как писать, поэтому просто создали заглушку.
Подписывайтесь на канал 👉@pythonofff
7 172
Параметры функции *args, **kwargs
Думаю, многие хоть раз видели такую запись, сейчас мы узнаем, что это за магические символы. Сообщу сразу, что параметры функции *args и **kwargs – общепринятые имена переменных, а разбирать мы будем звездочки перед ними.
В примере функция принимает обязательный аргумент value, а остальных аргументов она как бы не ожидает. В таком случае *args упаковывает все не именованные аргументы в кортеж, а **kwargs – все именованные в словарь.
В целом, конструкция с *args, **kwargs получается достаточно полезной, если мы не знаем, кто и в каких целях будет использовать нашу функцию. То есть, мы можем запихнуть в аргументы после такого практически всё.
Подписывайтесь на канал 👉@pythonofff
7 172
В одну строку - итератор
Вы уже знаете, как писать многие крутые штуки в одну строчку. Но можно ускорить работу кода, используя итераторы.
Итератор - объект, который хранит начало, конец, текущий элемент и правило преобразований. В итоге мы можем получать только новые значения.
Преимущество в том, что итераторы потребляют намного меньше памяти, чем списки и кортежи.
Вы уже точно знаете один итератор и даже пользуетесь им - range().
А есть еще один очень полезный - map(). Он принимает два аргумента, функцию для задания правила преобразования и что-то, что требуется преобразовать.
Подписывайтесь на канал 👉@pythonofff
7 172
В одну строчку
Python гибкий язык и позволяет многое сделать в одну строчку. К примеру, матрицу из одних нулей. Или постоянно возрастающий список.
Такие методы лучше использовать когда надо сгенерировать что-то маленькое или нужное. Если использовать нужно сейчас и строго по одному, то лучше использовать итераторы. Об итераторах подробнее расскажем чуть позже.
Примеры списочных выражений на картинке. В следующий раз не придется набирать одинаковый текст несколько раз.
Подписывайтесь на канал 👉@pythonofff
7 172
Распаковка
Неудобно каждый раз для вывода объединять строки через join() или тем более как-то объединять числа. Мы можем распаковать кортеж или список, воспользовавшись звездочкой *. Со словарями данный способ не работает.
На самом деле применение более широкое. Звездочка может также собирать несколько значений в одну переменную. Очень удобно применять для функций с бесконечным количеством аргументов или только с именованными аргументами.
Подписывайтесь на канал 👉@pythonofff
7 172
Выполнить строку - eval()
Говорят, каждый программист должен написать калькулятор. Но если вы python разработчик, то вы можете сделать это в одну строчку:
print(eval(input()))
Что за eval и почему это работает?
eval() создана чтобы выполнять выражения и функции, обязательно возвращая какой-то результат. Так можно облегчить написание кода, принимая строкой словари, списки.
Единственное, что не умеет eval - присваивать что-то переменным. Зато она может их использовать!
Правильное применение функции сильно упростит вам жизнь.
Подписывайтесь на канал 👉@pythonofff
7 172
Последняя возможность получить двойную выгоду этим летом - "Python для пентестера" + "Основы Python" со скидкой 20% в Codeby Academy.
Старая цена - 56 000 рублей, новая - 45 000 рублей.
Успейте приобрести наш двойной пакет с 14 августа по 14 сентября!
✖️ Двойная выгода в одной покупке - оба курса нацелены на освоение навыков языка программирования в целом и его применении в сфере кибербезопасности одновременно. Вам не придётся самостоятельно искать материалы для обучения - всё это уже объединили для вас в нашей программе. Инструкторы укажут на недочёты выполнения домашних работ и помогут оптимизировать код.
🐍 Вы точно не найдете более выгодного предложения, потому что наши курсы в среднем на 40% дешевле курсов других школ. Более 100 учеников успели приобрести наш python-пакет с июня!
Успейте записаться до 14 сентября →
Подробности записи уточняйте у менеджеров
7 172
Как записать список в csv файл на Python?
Для записи в csv-файл определенного массива, Вы можете воспользоваться библиотекой csv.
В примере мы показываем, как будем записывать весь список в один столбец и в одну строку.
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
7 172
Кортежи - tuple()
По своей сути кортежи это тот же список, но который имеет ряд преимуществ (если его правильно применять).
Кортежи занимают меньше места, в отличии от списка, но тюплы не изменяются. Их неизменность применяется для большей безопасности. Кроме того, кортежи быстрее работают.
На самом деле каждый из нас использовал tuple, просто не знал, что он им является. При создании списков используются квадратные скобки или функция list(), а для кортежей обычные скобки или tuple().
Как и списки кортежи можно сравнивать между собой. Правила при этом те же.
Используйте tuple, если вам нужен неизменяемый список или нужно получить и сразу же работать со значениями.
Подписывайтесь на канал 👉@pythonofff
7 172
🔥Хотите сделать карьеру в Data Science?
Приглашаем на базовый урок по Machine Learning от OTUS
Тема: "Введение в Machine Learning"
Дата: 17 августа, 20:00. Вебинар приурочен к старту онлайн-курса "Machine Learning"
Что будет на уроке:
- История Machine Learning
- Основные понятия и типы задач машинного обучения
- Общий подход к решению задач
✨Занятие подойдёт:
- IT-специалисту, который хочет перейти в Data Science;
- Начинающему Data Scientist и специалисту по машинному обучению, желающему углубиться в профессию;
- Тому, кто самостоятельно изучает Data Science;
- Тому, кто хочет войти в IT, но не знает, что выбрать.
👉Регистрация: https://otus.pw/yZEv/
