Python академия
Open in Telegram
Учи Python быстро и легко. Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам. ✔ Подходит для прокачки навыков кодирования. По всем вопросам @evgenycarter
Show more7 183
Subscribers
-224 hours
-107 days
-3830 days
Posts Archive
7 184
Курс «Разработчик 1С» от Яндекса.
За 6 месяцев освоите один из самых простых языков программирования и пройдёте стажировку
Зарегистрироваться
#реклама 16+
practicum.yandex.ru
О рекламодателе
7 184
Регулярные выражения
Вы уже поняли, что при работе со строками модель re просто необходим. Отлаживать их очень тяжело, но все же необходимо.
В python для этого есть встроенная возможность, вы можете указать как флаг re.DEBUG. По названию видно, что данный flag помогает дебажить регулярные выражения.
Возможно кому-то данный способ может показаться неудобным. Я так же советую к использованию сайт regex101.com. В нем можно сразу создавать и проверять регулярные выражения, что очень удобно.
Подписывайтесь на канал 👉@pythonofff
7 184
Оператор морж в Python 3.8
Оператор морж (:=) в Python 3.8 позволяет присваивать значения переменным внутри выражений. Это означает, что вы можете присвоить значение переменной и использовать её в том же выражении. Например, вместо того, чтобы записывать значение в переменную, а затем использовать её, вы можете сделать это одновременно.
Пример использования оператора морж:
x = 5
if (n := len(str(x))) > 3:
print(f"Number {x} has more than 3 digits ({n})")
В этом примере переменной n присваивается значение длины строки x, и это значение сразу же используется в условии if. Таким образом, оператор морж позволяет делать код более компактным и читаемым.
Оператор морж также удобен при работе с циклами. Например, вы можете использовать его в цикле while для проверки условия и одновременного присваивания значения переменной.
Пример использования оператора морж в цикле:
while (n := random.randint(1, 10)) != 5:
print(n)
В этом примере переменной n присваивается случайное значение от 1 до 10, и цикл продолжается до тех пор, пока значение переменной не станет равным 5. Таким образом, оператор морж позволяет уменьшить количество строк кода и улучшить его читаемость.
Подписывайтесь на канал 👉@pythonofff7 184
Регулярные выражения
Метод sub позволяет заменить в строке по шаблону на нужный нам текст.
repl, string, max=0)
pattern - шаблон
repl - на что заменяем
string - строка по которой ищем
max - сколько раз заменяем
Соответственно, этот метод возвращает нужную нам строку.
Подписывайтесь на канал 👉@pythonofff
7 184
Infostart Teamlead&CIO Event - Москва 24-25 февраля 2025
Ключевое событие года для ИТ-руководителей! Более 1000 участников и 80+ докладов от практиков-экспертов со всей России.
🎓 В центре внимания:
- Лидерство и управление ИТ-командами;
- Методология управления в ИТ, ITSM, Service Desk;
- Управление ИТ-инфраструктурой;
- Информационная безопасность, управление рисками;
- Управление проектами и командой в ИТ;
- Оптимизация DevOps-процессов;
- ИИ в сфере ИТ.
Обмен опытом и расширение профессиональных связей.
Дата и место проведения:
📅 24-25 февраля 2025 года;
Москва, Конгресс-центр ЦМТ, Краснопресненская наб., 12.
⚡ Узнайте, как вывести ИТ-проекты на новый уровень. Программа и регистрация на сайте!
Узнать больше
#реклама
event.infostart.ru
О рекламодателе
7 184
hex, oct, bin
Приходилось вам раньше работать с различными системами счисления? Если да, то вы знаете, как написать программу переводящую из одной системы в другую. Пишется она довольно просто, но иногда стоит задача быстро написать код с какой-то популярной системой счисления. Обычно это двоичная, восьмеричная или шестнадцатеричная. Для всех этих систем есть встроенные функции, которые переводят в нужную нам систему!
Из 10-ричной:
hex - перевод в 16-ричную систему
oct - перевод в 8-ричную систему
bin - перевод в 2-ичную систему
А из любой системы счисления можно получить число максимально простым способом:
int(number, base)
Подписывайтесь на канал 👉@pythonofff
7 184
Замена текста с re.sub()
Метод re.sub() в модуле re является функцией, которая позволяет заменять фрагменты строки в соответствии с определенным шаблоном. Этот метод очень полезен при работе с регулярными выражениями в Python, так как он позволяет легко заменять или модифицировать текст в строке.
Для использования метода
re.sub(), необходимо передать ему три аргумента: шаблон (регулярное выражение), строку замены и строку, в которой нужно произвести замену. При этом, если шаблон не найден в строке, то замена не будет выполнена.
Пример использования метода re.sub():
import re
text = "Hello, World!"
new_text = re.sub(r"Hello", "Hi", text)
print(new_text) # Output: Hi, World!
В данном примере мы импортируем модуль re, создаем переменную text с исходным текстом «Hello, World!» и заменяем слово «Hello» на «Hi» с помощью метода re.sub(). Результатом будет строка «Hi, World!».
Подписывайтесь на канал 👉@pythonofff7 184
infinity
Самая типичная проблема при написании некоторых сортировок — назначение самой большой переменной. Часто она решается простым вводом большого числа или возведением в степень. Это, конечно, не стареющая классика, но метод максимально не надежный, а главное есть более удачные способы
float('infinity') или float('inf') для получения максимально возможного числа
float('-infinity') или float('-inf') для получения минимально возможного числа.
Не работает с int, требуется использовать именно float.
Подписывайтесь на канал 👉@pythonofff
7 184
Получи грант на обучение в Центральном университете
Центральный университет выдает гранты на 4 года обучения в бакалавриате.
Грант покрывает до 100% стоимости обучения. Участвуй в отборе, чтобы получить грант.
Получи доступ к уникальным активностям для абитуриентов. Для выпускников 10-х, 11-х классов и колледжей.
Подать заявку
#реклама
apply.centraluniversity.ru
О рекламодателе
7 184
Избегайте пустого списка
Пустой список нельзя использовать как аргумент по умолчанию в Python из-за того, что значения по умолчанию для аргументов функции вычисляются только один раз, при определении функции. Если вы попытаетесь использовать пустой список в качестве значения по умолчанию для аргумента функции, то он будет создан при определении функции и будет ссылаться на один и тот же объект в памяти каждый раз, когда функция вызывается.
Это означает, что если внутри функции изменяется пустой список, то изменение будет сохранено в этом списке для всех последующих вызовов функции, так как все они будут использовать один и тот же объект списка. Это может привести к неожиданным и нежелательным результатам, так как изменение списка в одном вызове функции может повлиять на другие вызовы, которые рассчитывают на неизменность значения по умолчанию.
Чтобы избежать подобных проблем, рекомендуется использовать в качестве значения по умолчанию неизменяемые объекты, такие как
None, числа или строки. Если необходимо использовать изменяемый объект, то лучше создавать его внутри функции, чтобы каждый вызов функции работал с отдельным экземпляром объекта и не влиял на другие вызовы.
def my_function(my_list=None):
if my_list is None:
my_list = []
my_list.append("element")
print(my_list)
my_function() # ["element"]
my_function() # ["element"] (не изменяет значение по умолчанию)
В приведенном примере использовано None как значение по умолчанию для аргумента функции, и внутри функции создается новый пустой список, если аргумент не был передан. Это позволяет избежать проблем с изменяемыми объектами и гарантирует, что каждый вызов функции работает с отдельным списком, не влияя на другие вызовы.
Подписывайтесь на канал 👉@pythonofff7 184
Библиотека Progressbar
Думали ли вы когда-нибудь над полоской прогресса? Иногда бывает полезно добавить в код отображение прогресса, чтобы пользователь не беспокоился, что программа не отвечает.
В первую очередь это касается синхронных приложений. Ведь, если наш код выполняет что-то одно, то на другие действия он не будет реагировать, ставя их в очередь. Ну и еще один вариант показывать, что программа не виснет, а думает, при этом не обязательно показывать прогресс.
Все это очень интересно, но если мы начнем самостоятельно писать полосу прогресса, то отвлечемся от основного кода. К счастью, в python есть библиотека Progressbar, которая делает все за нас.
Подписывайтесь на канал 👉@pythonofff
7 184
Библиотека schedule
Гибкая библиотека для создания планировщика. Точнее с её помощью можно создавать задачи, которые будут выполняться с определенным интервалом. Промежуток настраивается как душе угодно и работает до выключения пользователем приложения.
Конечно можно было использовать стандартный таймер, но зачем изобретать велосипед? С данной библиотекой планировка задач станет намного проще и понятнее другим программистам.
Библиотеку необходимо установить:
install schedule
В примере используется seconds, но можно использовать minutes, hour, day.at("8:00"), monday, minute.at(":17"). Если добавлять at, то указываем во сколько именно произойдет событие.
Подписывайтесь на канал 👉@pythonofff
7 184
Новый старт продаж АК ATLAS в Крыму, г. Судак.
✅ Открыты продажи нового комплекса Atlas Apart-Hotel & SPA на первой береговой (в 30 метрах от моря) у подножия заповедной горы Алчак в Судакской бухте.
Апартаменты в Крыму в собственность под управлением.
Готовый арендный бизнес с доходностью 1,5 млн. в год.
- Рассрочка 0% от застройщика индивидуально.
- Доступна ипотека 8ми банков партнеров.
- Оформление через эскроу-счет по ФЗ №214.
- Площади от 42 - 102 м2.
- SPA-центр с подогреваемым бассейном.
- Панорамные виды из номеров на море и вулкан.
❤️ Лучшая цена только сейчас на старте продаж!
- Для отдыха.
- Для сохранения капитала и перепродажи.
- Для получения дохода от сдачи в аренду.
Перейти на сайт
Финансовые услуги оказывает: ПАО Сбербанк, Банк ВТБ (ПАО).
#реклама
crimea-apart.ru
О рекламодателе
7 184
Библиотека JmesPath
Как вы уже заметили работать с json файлами в python очень удобно, ведь они отлично конвертируется в словарь. Также мы разобрали полезную библиотеку json, поэтому еще раз говорить о ней не будем.
Но вот нам надо получить данные из файла. А формат json, как правило имеет множество вложений. Искать что-то нужное можно, но не всегда это удобно и красиво (а дзен Python говорит, что красота имеет значение)
JmesPath облегчает работу в несколько раз. Вместо file['a']['b']['c'] можно написать jmespath.search('a.b.c', file). Кажется стало длиннее, но это потому что мы взяли мало элементов, и согласитесь a.b.c выглядит лучше. Даже отредактировать в случае чего будет проще.
Подписывайтесь на канал 👉@pythonofff
7 184
Асинхронное программирование
Обычно мы пишем синхронный код - выполняется по порядку один за другим. Но иногда требуется, чтобы выполнялось несколько задач одновременно. К примеру, пока копируются файлы можно было поиграть в игру. Это возможно благодаря нескольким ядрам и потокам. ВАЖНО! Асинхронность не обязательно делает код быстрее, но может повысить его эффективность. В момент простаивания процессор будет переключаться на другие задачи.
На картинке программа, где повар готовит сразу несколько блюд. По другому бы нам пришлось по-очереди готовить каждое блюдо, но мы можем вернуться к другим, если поставили блюдо на огонь.
Подписывайтесь на канал 👉@pythonofff
7 184
Концептуальные офисы в БЦ RUNOVSKY 14
Концептуальное офисное пространство для работы, расположенное в историческом центре Москвы в районе Замоскворечье. Проект имеет свой неповторимый характер. Переосмысление стиля ар-деко нашло свое отражение в черных фасадах с арочным остеклением.
БЦ находится в 2 минутах ходьбы от метро "Новокузнецкая", через которую проходят основные пешие маршруты до Третьяковской галереи, парка Зарядья и Московкского Кремля.
Проектом предусмотрено большое количество планировочных решений офисов площадью от 27 м2 с возможностью объединения смежных помещений.
Тех, кто решит купить лот в "RUNOVSKY 14", ждет премиальный сервис, безопасность и комфортная атмосфера.
Перейти на сайт
#реклама
зиккурат.рф
О рекламодателе
7 184
Как красиво напечатать json в Python?
Вы можете использовать json.dumps() в Python, чтобы красиво напечатать json.
Подписывайтесь на канал 👉@pythonofff
7 184
Удаление дубликатов в списке
Первое что приходит на ум — преобразовать список во множество и обратно. Это хороший и рабочий способ. Но если вам нужно сохранить последовательность, то этот способ не подойдёт. С этой задачей легко справится OrderedDict из модуля collections
Подписывайтесь на канал 👉@pythonofff
7 184
Дарим подписку на Яндекс Музыку
Ответьте на 1 вопрос и Яндекс Музыка для вас и 3-х ваших близких 30 дней бесплатно.
Кинопоиск и Яндекс Книги тоже в подписке.
Попробуйте сейчас❤️
Попробовать
#реклама 18+
music.yandex.ru
О рекламодателе
Реклама на Яндексе
7 184
Декораторы
Очень важная тема, с помощью декорирования можно писать очень удобные логи или существенно расширять функции.
Многие библиотеки работают с использованием декораторов: Flask и aiogram хорошие тому примеры.
Мы показываем лишь простой пример, возможности куда шире. Позже покажем пример использования с упоминаемыми выше библиотеками.
Подписывайтесь на канал 👉@pythonofff
