Python академия
Open in Telegram
Учи Python быстро и легко. Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам. ✔ Подходит для прокачки навыков кодирования. По всем вопросам @evgenycarter
Show more7 126
Subscribers
+124 hours
-87 days
-4530 days
Data loading in progress...
Similar Channels
Tags Cloud
Incoming and Outgoing Mentions
---
---
---
---
---
---
Attracting Subscribers
October '26Oct '26
October '26
+6
in 0 channels
September '26
+27
in 0 channels
Get PRO
August '26
+35
in 0 channels
Get PRO
July '26
+21
in 0 channels
Get PRO
June '26
+34
in 0 channels
Get PRO
May '26
+36
in 0 channels
Get PRO
April '26
+35
in 0 channels
Get PRO
March '26
+34
in 0 channels
Get PRO
February '26
+32
in 0 channels
Get PRO
January '26
+35
in 1 channels
Get PRO
December '25
+51
in 0 channels
Get PRO
November '25
+82
in 31 channels
Get PRO
October '25
+51
in 0 channels
Get PRO
September '25
+104
in 36 channels
Get PRO
August '25
+71
in 0 channels
Get PRO
July '25
+108
in 27 channels
Get PRO
June '25
+101
in 19 channels
Get PRO
May '25
+122
in 44 channels
Get PRO
April '25
+186
in 37 channels
Get PRO
March '25
+151
in 38 channels
Get PRO
February '25
+188
in 31 channels
Get PRO
January '25
+169
in 34 channels
Get PRO
December '24
+176
in 34 channels
Get PRO
November '24
+169
in 32 channels
Get PRO
October '24
+210
in 29 channels
Get PRO
September '24
+254
in 28 channels
Get PRO
August '24
+115
in 17 channels
Get PRO
July '24
+98
in 0 channels
Get PRO
June '24
+124
in 23 channels
Get PRO
May '24
+134
in 18 channels
Get PRO
April '24
+128
in 0 channels
Get PRO
March '24
+185
in 20 channels
Get PRO
February '24
+143
in 17 channels
Get PRO
January '24
+246
in 23 channels
Get PRO
December '23
+186
in 23 channels
Get PRO
November '23
+147
in 16 channels
Get PRO
October '23
+203
in 18 channels
Get PRO
September '23
+213
in 0 channels
Get PRO
August '23
+156
in 0 channels
Get PRO
July '23
+167
in 0 channels
Get PRO
June '23
+190
in 0 channels
Get PRO
May '23
+186
in 0 channels
Get PRO
April '23
+228
in 0 channels
Get PRO
March '23
+70
in 0 channels
Get PRO
February '23
+116
in 0 channels
Get PRO
January '23
+208
in 0 channels
Get PRO
December '22
+241
in 0 channels
Get PRO
November '22
+207
in 0 channels
Get PRO
October '22
+413
in 0 channels
Get PRO
September '22
+479
in 0 channels
Get PRO
August '22
+479
in 0 channels
Get PRO
July '22
+600
in 0 channels
Get PRO
June '22
+481
in 0 channels
Get PRO
May '22
+630
in 0 channels
Get PRO
April '22
+946
in 0 channels
Get PRO
March '22
+1 344
in 0 channels
Get PRO
February '22
+1 103
in 0 channels
| Date | Subscriber Growth | Mentions | Channels | |
| 06 October | +1 | |||
| 05 October | +1 | |||
| 04 October | +2 | |||
| 03 October | +1 | |||
| 02 October | 0 | |||
| 01 October | +1 |
Channel Posts
Очистка элементов в последовательности
Встроенный модуль itertools был создан для работы с более сложными случаями итераторов. Плюс модуля в том, что он быстро работает и оптимизирован в плане памяти.
Иногда возникает необходимость удалить ненужные объекты в последовательности. Как раз для этого и используют itertools, а именно метод compress.
Первым аргументом передается какой-либо контейнер, например список. Вторым аргументом — логические значения, соответствующие элементам в последовательности.
Если логическое значения равно True или 1, то элемент сохраняется в последовательности, в противном случае — удаляется из нее.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff
| 2 | Как вывести все методы класса в Python?
Для того, чтобы вывести все методы класса, Вы можете воспользоваться методами dir(), callable(), getattr()
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 298 |
| 3 | Функции высшего порядка
Функции высшего порядка - функции принимающие или возвращающие другие функции. Очень говорящее название, запомнить очень просто
Чуть ранее мы говорили про lambda, они очень хорошо взаимодействуют с высшими функциями. Про одну из них мы говорили - map(). Она может принимать в себя лямбду, но это не дает такой большой функциональности.
Еще одна функция-итератор - filter()
Она поможет отфильтровать списки или итераторы. Первым принимает функцию, если она возвращает True, то пропускает элемент, вторым аргументом принимает список или итератор.
Не забывайте комбинировать функции!
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 354 |
| 4 | Конструктор класса
У классов практически во всех языках есть конструкторы — это такие специальные методы, которые вызываются автоматически и инициализируют экземпляр класса.
В Python конструкторы в классах имеют название __init__(), и их почти всегда переопределяют. Делается это для того, чтобы назначить свойства объекту и выполнить предварительные действия.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 433 |
| 5 | Анонимные функции
Часто функции нужны только один раз, причем короткие. И избыточно создавать под них функцию и придумывать ей имя.
Для таких случаев существуют лямбда функции, так выглядит их создание:
<аргументы>: <выражение>
Такие функции обязан знать каждый программист, их применение сильно сокращает код.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 468 |
| 6 | Бесконечные списки
Мы уже рассказывали про важность копирования списков. Но именно из-за такой процедуры появляется возможность создавать бесконечные списки. Дойти до конца такого списка невозможно, при этом он потребляет минимум памяти. Попробуйте создать сами.
На картинке (см. выше) видно создание. А затем мы пробуем модуль copy, чтобы узнать сможет ли он сделать глубокое копирование бесконечного объекта?
Применить знание особо негде, но данное задание помогает понять работу списков. Возможно, такой вопрос задаст вам рекрутер на одном из собеседований.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 439 |
| 7 | Заглушки
Для создания пустых функций и классов есть сразу два способа соответствующих правилам PEP: "pass" и "...". Предпочтительнее использовать первый вариант. Он означает буквальным счетом пустоту, даже применить функции dir() или help() не получится. А вот три точки - объект.
Их применение более широкое. Мы видели точки, когда выводили бесконечный список. Но то, был просто вывод, а не наш объект. Ellipsis применяется так же для создания пустых списков. Он показывает, что внутри не что-то одно, а много. На практике его используют лишь в документации и при создании все тех же пустых функций.
На картинке пример программы проверяющий пароль от юзера. Сохранение в БД мы еще не решили как писать, поэтому просто создали заглушку.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 403 |
| 8 | Параметры функции *args, **kwargs
Думаю, многие хоть раз видели такую запись, сейчас мы узнаем, что это за магические символы. Сообщу сразу, что параметры функции *args и **kwargs – общепринятые имена переменных, а разбирать мы будем звездочки перед ними.
В примере функция принимает обязательный аргумент value, а остальных аргументов она как бы не ожидает. В таком случае *args упаковывает все не именованные аргументы в кортеж, а **kwargs – все именованные в словарь.
В целом, конструкция с *args, **kwargs получается достаточно полезной, если мы не знаем, кто и в каких целях будет использовать нашу функцию. То есть, мы можем запихнуть в аргументы после такого практически всё.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 397 |
| 9 | В одну строчку
Python гибкий язык и позволяет многое сделать в одну строчку. К примеру, матрицу из одних нулей. Или постоянно возрастающий список.
Такие методы лучше использовать когда надо сгенерировать что-то маленькое или нужное. Если использовать нужно сейчас и строго по одному, то лучше использовать итераторы. Об итераторах подробнее расскажем чуть позже.
Примеры списочных выражений на картинке. В следующий раз не придется набирать одинаковый текст несколько раз.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 431 |
| 10 | Распаковка
Неудобно каждый раз для вывода объединять строки через join() или тем более как-то объединять числа. Мы можем распаковать кортеж или список, воспользовавшись звездочкой *. Со словарями данный способ не работает.
На самом деле применение более широкое. Звездочка может также собирать несколько значений в одну переменную. Очень удобно применять для функций с бесконечным количеством аргументов или только с именованными аргументами.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 479 |
| 11 | Выполнить строку - eval()
Говорят, каждый программист должен написать калькулятор. Но если вы python разработчик, то вы можете сделать это в одну строчку:
print(eval(input()))
Что за eval и почему это работает?
eval() создана чтобы выполнять выражения и функции, обязательно возвращая какой-то результат. Так можно облегчить написание кода, принимая строкой словари, списки.
Единственное, что не умеет eval - присваивать что-то переменным. Зато она может их использовать!
Правильное применение функции сильно упростит вам жизнь.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 476 |
| 12 | ИИ может за секунды предложить готовый код — вместе с несуществующим методом API, уязвимостью или давно устаревшим решением. Поэтому скорость генерации уже не главный навык. Важнее уметь проверять результат.
🎥22 сентября в 20:00 МСК на открытом уроке разберём, как выстроить безопасную работу с ИИ в Python-разработке: от воспроизведения инцидента и проверки гипотез до анализа кода и подготовки исправления.
На практическом примере покажем, как находить галлюцинации, уязвимости и устаревшие решения, проверять рекомендации модели и использовать ИИ при разборе кода без потери контроля над качеством.
🔔 Урок проходит в преддверии старта курса «ИИ для Python-разработчиков» и будет полезен Python-разработчикам, которые уже используют или только начинают использовать ИИ-инструменты в разработке и хотят применять их в соответствии с инженерными практиками, а не полагаться на ответы модели без проверки.
💻Зарегистрируйтесь и разберите инженерный подход к работе с ИИ-кодом: https://vk.cc/d1KMg8
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 | 418 |
| 13 | Как записать список в csv файл на Python?
Для записи в csv-файл определенного массива, Вы можете воспользоваться библиотекой csv.
В примере мы показываем, как будем записывать весь список в один столбец и в одну строку.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 423 |
| 14 | Кортежи - tuple()
По своей сути кортежи это тот же список, но который имеет ряд преимуществ (если его правильно применять).
Кортежи занимают меньше места, в отличии от списка, но тюплы не изменяются. Их неизменность применяется для большей безопасности. Кроме того, кортежи быстрее работают.
На самом деле каждый из нас использовал tuple, просто не знал, что он им является. При создании списков используются квадратные скобки или функция list(), а для кортежей обычные скобки или tuple().
Как и списки кортежи можно сравнивать между собой. Правила при этом те же.
Используйте tuple, если вам нужен неизменяемый список или нужно получить и сразу же работать со значениями.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 568 |
| 15 | Форматирование строк
Часто приходится работать со строкой и выводить различные данные. Не проблема, когда нужно вывести что-то короткое:
print('Hello', name). Но чаще строки нужны для отображения на формах, а не через print(). Еще чаще вывод должен быть намного сложнее.
В python3 есть очень удобный способ. Нужно поставить f перед строкой а в фигурных скобках {} написать нужную переменную. Если же эти скобки понадобились в тексте, то достаточно написать их дважды, чтобы экранировать.
Еще один способ — воспользоваться методом format(). Суть та же, но на этот раз без добавления f и добавления переменных как аргументов.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 537 |
| 16 | Как отправить post запрос в Python?
Для того, чтобы отправить post-запрос, нам нужно воспользоваться библиотекой requests.
Как мы видим - сервер получил наши данные.
В качестве отправных данных можно поставить любые значения - данный сервер их примет.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 470 |
| 17 | Почему присвоение не является копированием?
В python все является объектом. В этом легко убедится воспользовавшись функцией dir().
При присвоении в новую переменную отправляется ссылка на объект. А при изменении объекта ссылка на него не меняется.
Тут многие могут спросить про строки и числа, поэтому отвечаю — с ними то же самое. Просто при операциях не изменяется старый объект, а создается новый. Все это можно проследить воспользовавшись функцией id(), которая показывает номер объекта.
Интересно то, что за частью чисел в языке на программном уровне закреплена ссылка на объект. Можете попробовать сами.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 493 |
| 18 | Присвоение первого непустого значения из ряда
Следующая инструкция присвоит первый непустой (имеющий истинное значение) объект из множества объектов A, B и С. Или None, если все предыдущие объекты окажутся пустыми.
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 477 |
| 19 | Владение, заимствование и ссылки в Rust: как компилятор делает ваш код безопасным
В Rust одна из самых непривычных для разработчиков тем — это ownership (владение) и borrowing (заимствование). Многие пытаются писать на Rust как на C++ или Python, натыкаются на компилятор, и правила borrow checker'а поначалу кажутся слишком строгими. На деле компилятор просто защищает вас от ошибок, которые в других языках приводят к падениям, утечкам памяти и гонкам данных. Но чтобы подружиться с borrow checker’ом, нужно понять логику, а не заучивать правила.
На открытом вебинаре 9 сентября в 20:00 разберём фундаментальные концепции Rust, которые делают код безопасным без сборщика мусора. Поговорим о том, почему на одни и те же данные можно взять сколько угодно иммутабельных ссылок (&), но мутабельная (&mut) может быть только одна — и не одновременно с иммутабельными. Разберём, чем перемещение (move) отличается от копирования (Copy/Clone). Обсудим, что такое время жизни (lifetimes): когда его нужно указывать явно, а когда компилятор выводит его сам по правилам элизии (lifetime elision). На практических примерах посмотрим, как разбирать типичные ошибки borrow checker'а, писать функции, безопасно работающие со ссылками и слайсами, и почему правила владения и заимствования предотвращают гонки данных, обращение к освобождённой памяти и двойное освобождение.
Вебинар не для тех, кто хочет просто «посмотреть синтаксис» без погружения в модель памяти. Подойдёт тем, кто уже знаком с основами языка — переменными, функциями, типами — и хочет наконец разобраться в модели памяти Rust, а также программистам с опытом в C++, Java или Python, которые хотят понять самую важную и необычную концепцию языка.
👉 Записаться: https://vk.cc/d1i4G8
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 | 550 |
| 20 | Копирование словарей и других объектов
Новички часто допускают такую ошибку при создании копии списка:
lst2 = lst1
При работе с одним из словарей оказывается, что изменяются оба.
Почему так происходит?
Об этом — в завтрашнем посте. Пока что расскажу, как этого избежать:
У списка существует специальный метод copy(), который нужен как раз для таких случаев.
Но подобное работает не всегда! Если имеется множество вложенных списков, то надо сделать полное копирование импортировав модуль copy и воспользовавшись методом deepcopy().
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff | 473 |
