Python академия
Открыть в Telegram
Учи Python быстро и легко. Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам. ✔ Подходит для прокачки навыков кодирования. По всем вопросам @evgenycarter
Больше7 287
Подписчики
-424 часа
-27 дней
-4230 день
Архив постов
7 287
Что такое безопасность приложений и как проводить пентесты на уязвимости? Как подобрать пароль или устранить угрозу взлома? Узнайте всё о кибербезопасности на бесплатном интенсиве Skillbox с 25 по 27 августа в 21:00 по московскому времени: https://clc.to/fP6YIA.
Сразу после регистрации вы получите на почту полезную статью о защите информации в сети ✔️
Что вас ждёт:
▶️ Интересные практические задания.
Напишете простейший подбор паролей на Python и попробуете взломать CSRF-защиту.
✔️ Полезная теория.
Узнаете, как устроено приложение и что такое протокол HTTP.
💬 Общение со спикером.
Экс-руководитель команды, которая разработала платформу антиспама и машинного обучения в Badoo, Михаил Овчинников расскажет про зарплаты, востребованность и перспективы работы в сфере.
🎁 Присоединяйтесь к прямым эфирам и получите сертификат на 10 000 рублей на любой курс Skillbox. А всем, кто дойдёт до конца интенсива, подарим книгу Пола Доэрти и Джеймса Уилсона «Человек + машина» издательства МИФ.
7 287
Ключевое слово del
Для удаления элемента из списка можно использовать ключевое слово del с названием списка после него. Также потребуется передать индекс того элемента, который нужно удалить.
Подписывайтесь на канал 👉@pythonofff
7 287
Сортировка словаря по значениям
Сортировка данных словаря по значениям ключей, а не по самим ключам, нередко ставит в тупик.
Задача решается довольно просто при помощи аргумента key функции sorted для указания функции, которая будет вызываться на каждом элементе до сравнения.
Подписывайтесь на канал 👉@pythonofff
7 287
Использование цикла
В этом коде мы вызываем функцию для обращения строки, которая повторяется для каждого элемента и интересным способом присоединяет каждый символ к началу, чтобы получить обратную строку.
Подписывайтесь на канал 👉@pythonofff
7 287
Дизассемблирование
Встроенный модуль dis позволяет декомпилировать написанную вами программу в байт-код Python.
На картинке показана работа этого модуля на примере функции, но такое можно повторить и с классами – в таком случае все его функции будут дизассемблированы.
Подписывайтесь на канал 👉@pythonofff
7 287
«Сырые» строки и строковые литералы
Оперировать строками в Python – одно удовольствие, так как язык предоставляет для них множество удобных методов. Также имеется поддержка «сырых» строк и строковых литералов.
Чтобы строка стала «сырой», перед ней необходимо поставить символ r в любом регистре
Подписывайтесь на канал 👉@pythonofff
7 287
Упаковка параметров с помощью urlencode
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:
url = 'https://example.com?item={}&size={}&color={}&amount={}'.format('t-shirt', 'M', 'white', 5)
Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция urlencode из модуля urllib.
Подписывайтесь на канал 👉@pythonofff
7 287
Как удалить несколько элементов из списка
Методы remove() и pop() могут удалить только один элемент. Для удаления нескольких используется метод del.
Например, из списка ['A', 'B', 'C', 'D', 'E', 'F'] нужно удалить элементы B, C и D. Вот как это делается с помощью del.
Подписывайтесь на канал 👉@pythonofff
7 287
Pyperclip
Модуль pyperclip имеет функции copy() и paste(), которые позволяют отправлять текст в буфер обмена вашего компьютера и получать его оттуда.
Таким образом, можно прямо через код копировать вывод программы в буфер обмена вместо того, чтобы делать это вручную.
Установить этот модуль можно привычным способом через пакетный менеджер pip.
Подписывайтесь на канал 👉@pythonofff
7 287
Разбиение строки
Для анализа текста требуются различные метрики, такие как количество слов, количество символов, средняя длина предложения. Чтобы вычислить эти значения, нам нужно подготовить текст — очистить и разделить. К счастью для нас, в Python есть несколько встроенных функций для разделения текста
Подписывайтесь на канал 👉@pythonofff
7 287
Параметры функции *args, **kwargs
Думаю, многие хоть раз видели такую запись, сейчас мы узнаем, что это за магические символы. Сообщу сразу, что args и kwargs – общепринятые имена переменных, а разбирать мы будем звездочки перед ними.
В примере функция принимает обязательный аргумент value, а остальных аргументов она как бы не ожидает. В таком случае *args упаковывает все не именованные аргументы в кортеж, а **kwargs – все именованные в словарь.
В целом, конструкция с *args, **kwargs получается достаточно полезной, если мы не знаем, кто и в каких целях будет использовать нашу функцию. То есть, мы можем запихнуть в аргументы после такого практически всё.
Подписывайтесь на канал 👉@pythonofff
7 287
❗️ Сделайте первый шаг к профессиональной работе с нейросетями!
Приходите 24 августа на открытый урок «Применение нейросетей для определения параметров человека».
📚На занятии с экспертом-практиком рассмотрим основные этапы создания и обучения своей первой нейронной сети и попробуем решить известную задачу классификации MNIST полносвязной и сверточной нейронными сетями на примере фреймворка PyTorch.
Занятие является частью онлайн-курса «Deep Learning» OTUS для тех, кто знает Python на базовом уровне.
Для участия пройдите вступительный тест 👉🏼 https://otus.pw/pn8Y/
7 287
Используем рекурсию
В коде строка передается в качестве аргумента рекурсивной функции для обращения строки. В функции основное условие состоит в том, что если длина строки равна 0, строка возвращается. Если не равно 0, рекурсивно вызывается обратная функция, чтобы разрезать часть строки, оставив первый символ, и объединить первый символ с концом отрезанной строки.
Подписывайтесь на канал 👉@pythonofff
7 287
Красивый вывод таблиц
Недавно нам понадобилось логировать часть базы данных. И тут мы вспомнили про прекрасный модуль prettytable, который позволяет красиво выводить таблицы.
Итак, имена столбцов задается с помощью атрибута table.field_names. А добавлять строки с данными в таблицу можно методом table.add_row([]), передавая туда список элементов.
Но даже если вы не фанат командной строки, то иногда нужно сохранить отчет о работе вашей программы в текстовый файл. В таком случае можно сохранить саму таблицу, вызвав метод table.get_string().
Подписывайтесь на канал 👉@pythonofff
7 287
Использование метода join()
Метод join() используется для соединения строки, в которой разделитель str разъединил элементы последовательности.
В коде переменная str1 хранит строку «Hello», а переменная str2 хранит «JavaTpoint». Метод join() возвращает объединенную строку, которая хранится в str1 и str2. Метод join() принимает в качестве аргумента только список.
Подписывайтесь на канал 👉@pythonofff
7 287
Работа с ip адресами
Если вам приходится писать на Python программы для работы с сетью — это значит, что вам может очень пригодиться модуль ipaddress.
Одним из вариантов его использования является генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация).
Кстати, у модуля ipaddress есть и много других интересных возможностей, прочитать о которых можно здесь.
Подписывайтесь на канал 👉@pythonofff
7 287
Ждете момента начать изучать Python с нуля? Сейчас самое время! В OTUS пройдут два открытых урока по ООП в рамках специализации «Python Developer». Оба занятия проведет Сурен Хоренян, опытный Python-разработчик из МТС.
🗓 18 августа в 20:00 мск — «Основы ООП в Python».
Научимся работать с классами и познакомимся с наследованием. А также узнаем, что такое мутабельность экземпляров класса, передача аргументов в инициализатор, наследование, переопределение методов и обращение к методам суперкласса.
Записаться на урок — https://otus.pw/nlnr/
🗓 25 августа в 20:00 — «Продвинутое ООП и исключения в Python».
Познакомимся с приватными, скрытыми и магическими методами, научимся работать с исключениями, со static method и classmethod, узнаем различия.
Записаться на урок — https://otus.pw/I4o7/
Не упустите возможность предварительно попробовать онлайн-курс и познакомиться с преподавателем!
7 287
Метод remove()
Метод remove() — это встроенный метод, который удаляет первый совпадающий элемент из списка.
Синтаксис: list.remove(element).
Передается элемент, который нужно удалить из списка.
Метод не возвращает значений.
Подписывайтесь на канал 👉@pythonofff
7 287
Комплексные числа в Python
Кроме уже известных вам типов int, float и подобных, в Python существует еще один довольно интересный тип, а именно, complex.
В Python комплексные числа представлены в виде x + iy. Python преобразует реальные числа x и y в комплексное с помощью функции complex(x,y).
Это число можно превратить в строку с помощью str, посчитать его модуль с помощью abs, а также для доступа к его реальной или мнимой части можно воспользоваться функциями real() и imag().
Хотя данный тип и является встроенным, для полноценной работы с комплексными операциями понадобится модуль cmath.
Подписывайтесь на канал 👉@pythonofff
7 287
Pop
Данный метод удаляет элемент в конкретно указанном индексе, а также выводит удалённый элемент. Если индекс не указан, метод по умолчанию удалит последний элемент
Подписывайтесь на канал 👉@pythonofff
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
