Python академия


Гео и язык канала: Россия, Русский
Категория: Технологии


Учи Python быстро и легко.
Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам.
✔ Подходит для прокачки навыков кодирования.

Связанные каналы

Гео и язык канала
Россия, Русский
Категория
Технологии
Статистика

Очистка элементов в последовательности

Встроенный модуль itertools был создан для работы с более сложными случаями итераторов. Плюс модуля в том, что он быстро работает и оптимизирован в плане памяти.

Иногда возникает необходимость удалить ненужные объекты в последовательности. Как раз для этого и используют itertools, а именно метод compress.

Первым аргументом передается какой-либо контейнер, например список. Вторым аргументом — логические значения, соответствующие элементам в последовательности.

Если логическое значения равно True или 1, то элемент сохраняется в последовательности, в противном случае — удаляется из нее.

Подписывайтесь на канал 👉 @python_of


Как вывести все методы класса в Python?

Для того, чтобы вывести все методы класса, Вы можете воспользоваться методами dir(), callable(), getattr()

Подписывайтесь на канал 👉 @python_of


Функции высшего порядка

Функции высшего порядка - функции принимающие или возвращающие другие функции. Очень говорящее название, запомнить очень просто

Чуть ранее мы говорили про lambda, они очень хорошо взаимодействуют с высшими функциями. Про одну из них мы говорили - map(). Она может принимать в себя лямбду, но это не дает такой большой функциональности.

Еще одна функция-итератор - filter()
Она поможет отфильтровать списки или итераторы. Первым принимает функцию, если она возвращает True, то пропускает элемент, вторым аргументом принимает список или итератор.

Не забывайте комбинировать функции!

Подписывайтесь на канал 👉 @python_of


Конструктор класса

У классов практически во всех языках есть конструкторы — это такие специальные методы, которые вызываются автоматически и инициализируют экземпляр класса.

В Python конструкторы в классах имеют название __init__(), и их почти всегда переопределяют. Делается это для того, чтобы назначить свойства объекту и выполнить предварительные действия.

Подписывайтесь на канал 👉 @python_of


Работаете с СУБД? Присоединяйтесь к сообществу Pangolin для разработчиков и администраторов баз данных!

Pangolin DB — это PostgreSQL с 100+ доработками, и команда СберТеха открыто рассказывает о его разработке.
 
В канале «СУБД Pangolin» найдете:
🔹 Глубокие разборы архитектуры и кода
🔹 Кейсы оптимизации и доработки PostgreSQL
🔹 Советы и опыт инженеров
🔹 Вебинары и встречи с экспертами
🔹 Вакансии и жизнь команды от первого лица
 
Присоединяйтесь к сообществу, где говорят на языке баз данных!


Анонимные функции

Часто функции нужны только один раз, причем короткие. И избыточно создавать под них функцию и придумывать ей имя.

Для таких случаев существуют лямбда функции, так выглядит их создание:
<аргументы>: <выражение>

Такие функции обязан знать каждый программист, их применение сильно сокращает код.

Подписывайтесь на канал 👉 @python_of


Бесконечные списки

Мы уже рассказывали про важность копирования списков. Но именно из-за такой процедуры появляется возможность создавать бесконечные списки. Дойти до конца такого списка невозможно, при этом он потребляет минимум памяти. Попробуйте создать сами.

На картинке (см. выше) видно создание. А затем мы пробуем модуль copy, чтобы узнать сможет ли он сделать глубокое копирование бесконечного объекта?

Применить знание особо негде, но данное задание помогает понять работу списков. Возможно, такой вопрос задаст вам рекрутер на одном из собеседований.

Подписывайтесь на канал 👉 @python_of


Заглушки

Для создания пустых функций и классов есть сразу два способа соответствующих правилам PEP: "pass" и "...". Предпочтительнее использовать первый вариант. Он означает буквальным счетом пустоту, даже применить функции dir() или help() не получится. А вот три точки - объект.

Их применение более широкое. Мы видели точки, когда выводили бесконечный список. Но то, был просто вывод, а не наш объект. Ellipsis применяется так же для создания пустых списков. Он показывает, что внутри не что-то одно, а много. На практике его используют лишь в документации и при создании все тех же пустых функций.

На картинке пример программы проверяющий пароль от юзера. Сохранение в БД мы еще не решили как писать, поэтому просто создали заглушку.

Подписывайтесь на канал 👉 @python_of


Параметры функции *args, **kwargs

Думаю, многие хоть раз видели такую запись, сейчас мы узнаем, что это за магические символы. Сообщу сразу, что параметры функции *args и **kwargs – общепринятые имена переменных, а разбирать мы будем звездочки перед ними.

В примере функция принимает обязательный аргумент value, а остальных аргументов она как бы не ожидает. В таком случае *args упаковывает все не именованные аргументы в кортеж, а **kwargs – все именованные в словарь.

В целом, конструкция с *args, **kwargs получается достаточно полезной, если мы не знаем, кто и в каких целях будет использовать нашу функцию. То есть, мы можем запихнуть в аргументы после такого практически всё.

Подписывайтесь на канал 👉 @python_of


В одну строчку

Python гибкий язык и позволяет многое сделать в одну строчку. К примеру, матрицу из одних нулей. Или постоянно возрастающий список.

Такие методы лучше использовать когда надо сгенерировать что-то маленькое или нужное. Если использовать нужно сейчас и строго по одному, то лучше использовать итераторы. Об итераторах подробнее расскажем чуть позже.

Примеры списочных выражений на картинке. В следующий раз не придется набирать одинаковый текст несколько раз.

Подписывайтесь на канал 👉 @python_of



ИТ-сообщество, хватит онлайн-митапов – приходите офлайн.

18 сентября в Москве состоится ЛЦТ. Старт Кодинга, открывающее событие восьмого сезона хакатона «Лидеры цифровой трансформации». Деловые сессии, нетворкинг, битва роботов, полигон роверов, зона кодинга и другие активности.

📅 18 сентября, с 15:00
📍 Центр роботизации «Создатели», ул. Миклухо-Маклая, 27А, 3 этаж (м. Беляево)
🔗 Регистрация на событие и подробности по ссылке. Количество мест ограничено!


Распаковка

Неудобно каждый раз для вывода объединять строки через join() или тем более как-то объединять числа. Мы можем распаковать кортеж или список, воспользовавшись звездочкой *. Со словарями данный способ не работает.

На самом деле применение более широкое. Звездочка может также собирать несколько значений в одну переменную. Очень удобно применять для функций с бесконечным количеством аргументов или только с именованными аргументами.

Подписывайтесь на канал 👉 @python_of


ИИ может за секунды предложить готовый код — вместе с несуществующим методом API, уязвимостью или давно устаревшим решением. Поэтому скорость генерации уже не главный навык. Важнее уметь проверять результат.

🎥 22 сентября в 20:00 МСК на открытом уроке разберём, как выстроить безопасную работу с ИИ в Python-разработке: от воспроизведения инцидента и проверки гипотез до анализа кода и подготовки исправления.

На практическом примере покажем, как находить галлюцинации, уязвимости и устаревшие решения, проверять рекомендации модели и использовать ИИ при разборе кода без потери контроля над качеством.

🔔 Урок проходит в преддверии старта курса «ИИ для Python-разработчиков» и будет полезен Python-разработчикам, которые уже используют или только начинают использовать ИИ-инструменты в разработке и хотят применять их в соответствии с инженерными практиками, а не полагаться на ответы модели без проверки.

💻 Зарегистрируйтесь и разберите инженерный подход к работе с ИИ-кодом: https://vk.cc/d1MO6z

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576


Выполнить строку - eval()

Говорят, каждый программист должен написать калькулятор. Но если вы python разработчик, то вы можете сделать это в одну строчку:
print(eval(input()))

Что за eval и почему это работает?
eval() создана чтобы выполнять выражения и функции, обязательно возвращая какой-то результат. Так можно облегчить написание кода, принимая строкой словари, списки.

Единственное, что не умеет eval - присваивать что-то переменным. Зато она может их использовать!

Правильное применение функции сильно упростит вам жизнь.

Подписывайтесь на канал 👉 @python_of


Как записать список в csv файл на Python?

Для записи в csv-файл определенного массива, Вы можете воспользоваться библиотекой csv.

В примере мы показываем, как будем записывать весь список в один столбец и в одну строку.

Подписывайтесь на канал 👉 @python_of


AI-агенты уже экономят специалистам до 15 часов в неделю.

У Яндекс Практикума есть курсы по нейросетям для разных задач и уровней подготовки:

→ работа с ИИ для повседневных и рабочих задач;
→ создание AI-агентов и автоматизация процессов;
→ вайбкодинг и разработка с помощью нейросетей;
→ применение ИИ в маркетинге, аналитике и других профессиях.

Во многих курсах есть бесплатные вводные модули – можно познакомиться с программой и начать обучение без оплаты. Промокод PRACT10SEPT дает скидку 10% на покупку курса.

→ Добавить ИИ в свой стек навыков

Erid: 2SDnjeN7soy
Название: ООО "ЯНДЕКС"
ИНН: 7736207543


Кортежи - tuple()

По своей сути кортежи это тот же список, но который имеет ряд преимуществ (если его правильно применять).

Кортежи занимают меньше места, в отличии от списка, но тюплы не изменяются. Их неизменность применяется для большей безопасности. Кроме того, кортежи быстрее работают.

На самом деле каждый из нас использовал tuple, просто не знал, что он им является. При создании списков используются квадратные скобки или функция list(), а для кортежей обычные скобки или tuple().

Как и списки кортежи можно сравнивать между собой. Правила при этом те же.

Используйте tuple, если вам нужен неизменяемый список или нужно получить и сразу же работать со значениями.

Подписывайтесь на канал 👉 @python_of


Как отправить post запрос в Python?

Для того, чтобы отправить post-запрос, нам нужно воспользоваться библиотекой requests.
Как мы видим - сервер получил наши данные.
В качестве отправных данных можно поставить любые значения - данный сервер их примет.

Подписывайтесь на канал 👉 @python_of


Почему присвоение не является копированием?

В python все является объектом. В этом легко убедится воспользовавшись функцией dir().

При присвоении в новую переменную отправляется ссылка на объект. А при изменении объекта ссылка на него не меняется.

Тут многие могут спросить про строки и числа, поэтому отвечаю — с ними то же самое. Просто при операциях не изменяется старый объект, а создается новый. Все это можно проследить воспользовавшись функцией id(), которая показывает номер объекта.

Интересно то, что за частью чисел в языке на программном уровне закреплена ссылка на объект. Можете попробовать сами.

Подписывайтесь на канал 👉 @python_of


⚡️ 40 000 000 ₽ ждут, пока ты дочитаешь этот пост

Если ты пишешь код, рисуешь интерфейсы или анализируешь данные до трёх ночи — у нас для тебя новость. Стартовала регистрация на конкурс «Лидеры цифровой трансформации», и призовой фонд там не шуточный —40 000 000 ₽ 🔥

🥇 1 место — 1 000 000 ₽
🥈 2 место — 600 000 ₽
🥉 3 место — 400 000 ₽

Что ещё:
💼 20 живых задач Правительства Москвы и бизнеса: Positive Technologies, «Газпромбанк.Тех», билайн бизнес, Yandex Cloud, VK Tech, РСХБ, «Фалькон Тех», ГК «Геоскан», ИТ Школа Ростелекома, ОЭЗ «Алабуга».
🧠 14 дней на разработку вашего решения
🪩 в конце — молодежный технологический фестиваль с награждением, нетворкингом, интерактивными стендами и крутой программой

Кто может участвовать?
👉🏻 Специалисты от 16 лет в любом цифровом направлении — ИИ-инженеры, разработчики, специалисты по обработке и анализу данных, аналитики, проджект-менеджеры, дизайнеры….

Собирай свою команду профи и принимай вызов!
Кто знает, возможно, эти призовые деньги ждут именно тебя 😉

📲 Регистрация тут:
https://i.moscow/lct?utm_source=sp&utm_medium=social&utm_campaign=python_of/?erid=2Vtzqw6jgbM
До 14 сентября — не пропусти!

Показано 20 последних публикаций.