20070
Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL
Вопросы подписчиков
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросыновичков
@zen_of_python
История шпиона в вашем кармане
Pegasus — программа, которая превращает смартфон в инструмент слежки. Она способна получить доступ к сообщениям, звонкам и камере, оставаясь незаметной. Кто стоит за этим инструментом и зачем вообще он такой нужен?
В новом эпизоде АЙТИ КРАЙМА рассказываем историю NSO Group и их главного продукта. Как Pegasus взламывает устройства, кого выбирает мишенью и почему это стало скандалом мирового масштаба?
Слушайте и смотрите новый выпуск:
Яндекс.Музыка
Apple Music
Spotify
YouTube
Telegram
Darcula Olivier Theme
На фоне неубывающей любви россиян к этому непревзойденному салату и вдохновившись брошью «Брызги оливье» редакция Tproger подготовила для вас темную тему для для VSCode:
Колбаска докторская: #B87172
Картошечка: #8B9362
Морковка: #D34D28
Горошек: #6B5B24
Яичко: #D2B689
Соленые огурчики: #766534
Лучок: #8B9362
С любовью,
Tproger
Как установить кастомную тему из JSON-файла
p.s. Завтра будет тема для PyCharm.
#кек
@zen_of_python
Вы просили в прошлом году специализированной открытки, чтобы переслать близкому питонисту. Держите!
С любовью,
Редакция Tproger
@zen_of_python
Вышел Python 3.14.0 alpha 3
Среди обновлений:
— отложенное чтение аннотаций: Аннотации функций, классов и модулей больше не анализируются «на месте». Вместо этого они хранятся в специальных функциях и ждут вызова;
— Теперь можно подключить API языка С вместо использования С-подобных структур;
— Улучшенный трейсбек: если распаковка завершается неудачей из-за неправильного количества переменных, сообщение об ошибке выводит полученное количество значений в большем количестве случаев, чем раньше (см. картинку).
Подробнее
#обновление
@zen_of_python
Типы питонических проектов, которые будут попадаться вам в ходе карьеры
Choose your python
@zen_of_python
Создавайте и проверяйте задания по программированию на GitVerse
На платформе для работы с исходным кодом GitVerse появился SmartClass — бесплатный инструмент для управления заданиями по программированию. С ним можно создавать, хранить и проверять задачи, а также автоматизировать ревью кода с помощью AI-ассистента GigaCode. В общем, все что нужно – теперь под рукой.
Пользователи SmartClass получают все преимущества платформы GitVerse, что дает начинающим специалистам возможность освоить профессиональные инструменты разработки. Решение позволяет не только изучать программирование и код, но и погрузиться в детали работы с такими инструментами и практиками, как CI/CD, Git и многими другими.
И, конечно, теперь смело можно отдать рутину аналитики заданий вашему верному помощнику – AI-ассистенту! За счет встроенных в платформу AI-расширений и AI-ассистента разработчика GigaCode вы можете за пару минут провести аналитику кода и значительно облегчить процесс проверки работ.
Переходите на GitVerse и пробуйте новый инструмент!
Это #партнёрский пост
Лучшие питонические курсы по версии Stepik
Держите подборку лучших уроков, среди которых — отрекомендованные / опробованные подписчиками / админом:
Основы ЯП:
— "Поколение Python": курс для профессионалов, 5900
— Добрый, добрый Python с Сергеем Балакиревым, бесплатно
Алгоритмы, структуры данных:
— Алгоритмы: теория и практика. Методы
Продвинутый Python:
— Асинхронный Python
— Машинное Обучение в Python: Большой Курс для Начинающих
Если вам попадались еще годные ресурсы, поделитесь в комментариях.
#курс
@zen_of_python
enlighten | Индикатор прогресса для CLI
Минималистичный, но полезный во многих случаях инструмент, который отображает прогресс-бары прям в командной строке, НЕ опираясь на реальный прогресс функции, как и 99% таких шкал в играх, кстати. Но ощутимая польза все равно есть.
import enlighten
manager = enlighten.get_manager()
pbar = manager.counter(total=100, desc='Basic', unit='ticks')
Ниже приводится несколько правил в языке Python, которым вам необходимо следовать, если у вас появится потребность использовать специальные режимы сопоставления аргументов:
— В вызове функции аргументы должны указываться в следующем порядке: любые позиционные аргументы (значения), за которыми могут следовать
любые именованные аргументы (имя=значение) и аргументы в форме *итерируемый объект, за которыми могут следовать аргументы в форме **словарь.
— В заголовке функции аргументы должны указываться в следующем порядке: любые обычные аргументы (name), за которыми могут следовать аргументы со значениями по умолчанию (name=value), за которыми следуют аргументы в форме *name (или * в 3.0), если имеются, за которыми могут следовать любые имена или пары name=value аргументов, которые передаются только по имени (в 3.0), за которыми могут следовать аргументы в форме **имя.
ridgeplot | Красивые графики распределения
Инструмент позволяет строить Ridge Plots — разновидность гистограммы, похожей на горный хребет. Это по сути надстройка над небезызвестным Plotly, при этом прописать тонкостей можно еще больше — интервалы, цвета, шрифты и многое другое.
Репозиторий проекта
#инструмент
@zen_of_python
Ибо ее весьма непросто понять порой
#кек
@zen_of_python
plt.xkcd() | Пасхалка для любителей мемных графиков
В официальной документации Matplotlib есть блок, посвященный функции plt.xkcd(). Она строит графики в стиле одноименных комиксов (как на картинке).with plt.xkcd(): # Based on "Stove Ownership" from XKCD by Randall Munroe # https://xkcd.com/418/ fig = plt.figure() ax = fig.add_axes((0.1, 0.2, 0.8, 0.7)) ax.spines[['top', 'right']].set_visible(False) ax.set_xticks([]) ax.set_yticks([]) ax.set_ylim([-30, 10]) data = np.ones(100) data[70:] -= np.arange(30) ax.annotate( 'THE DAY I REALIZED\nI COULD COOK BACON\nWHENEVER I WANTED', xy=(70, 1), arrowprops=dict(arrowstyle='->'), xytext=(15, -10)) ax.plot(data) ax.set_xlabel('time') ax.set_ylabel('my overall health') fig.text( 0.5, 0.05, '"Stove Ownership" from xkcd by Randall Munroe', ha='center')
А если вам захотелось покекать, то вот ссылка на официальный сайт создателя Монро.
#кек
@zen_of_python
Вопросы подписчиков
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросыновичков
@zen_of_python
Python: итоги 2024
По традиции авторы канала MoscowPython подвели итоги ушедшего 2024-го года и описывают важнейшие события из мира ЯП.
Среди прочих:
— Релиз Python 3.13: В октябре вышла новая версия, c экспериментальным JIT-компилятором и улучшенным REPL.
— Удаление GIL: В течение года команда PSF выпилила Global Interpreter Lock, что улучшило многопоточную производительность языка.
— Релиз NumPy 2.0: В июне состоялся этот релиз популярной библиотеки вычислений. Обновление принесло значительные улучшения в производительности и функциональности.
Смотреть полный подкаст на замедленотьюбе
#факт
@zen_of_python
Olivier Darcula Theme: PyCharm
Проолжаем феерию цвета в темном исполнении. Тема в стиле непревзойденного салата для IDE PyCharm.
Конверсия в .tmTheme в выполнена с помощью опенсорсного инструмента colorSchemeTool.
#кек
@zen_of_python
Самые-самые посты за 2024 год
— Самый комментируемый: Задача о перетасовке строки
— Самый залайканный: He was a VSCode boy, she was a PyCharm girl
— Самый пересылаемый + с самым большим ER*: Самая красивая и лаконичная шпаргалка bash
— Самый просматриваемый: В мире разработчиков
ER (англ. Engagement Rate) — доля вовлеченности. Рассчитывается по формуле:ER = (лайки + комментарии) / подписчики * 100%
@zen_of_python
Шпаргалка, о которой вы не знали, что она вам нужна: cURL и его флаги
Когда лень запускать Postman, но запрос протестировать надо.
@zen_of_python
Подарите вашей девушке платье PyCharm, ведь оно еще лучше, чем нашумевшее платье Excel.
#кек
@zen_of_python
Придумайте подпись к фото, но так, чтобы это относилось к языку программирования.
@zen_of_python
Вопросы подписчиков
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросыновичков
@zen_of_python
Квиз: как удалять элементы списка
Небольшая англоязычная викторина на 6 вопросов с RealPython. К ее прохождению можно подготовиться с помощью статьи.
#квиз
@zen_of_python
Вопрос подписчика
Задает Anton Yablokov:
"pyaudio не выдаёт звук, когда прошу устройство явно, а не определённые системой pulse и default. ЧЯДНТ?
Какие есть альтернативы, кроме тяжеловесной PySide6.QtMultimedia?
https://stackoverflow.com/questions/79295111/pyaudio-produces-no-sound-when-using-explicit-device".
#вопрос
@zen_of_python
Большой гайд по Python от Tproger: инструменты для всех направлений
В Tproger подготовили подборку питонических статей для начинающих по следующим направлениям:
— Бэкенд-разработка;
— Фронтенд-разработка;
— Парсинг;
— Тестирование;
— Data Science.
Здесь и роадмапы, и про хранение данных, и про самые популярные фреймворки и многое другое.
#основы
В чём преимущества и недостатки перехода на платформы?
«Что хорошего: система становится стабильнее, быстрее внедряются новые фичи, а сервисом могут пользоваться различные продуктовые команды», — рассказывает Ярослав Тулупов,CTO финтеха Авито.
А узнать, что не очень, можно в конференц-зале Avito All Day Long, в котором мы собрали краткую выжимку из докладов этого большого события. Располагайтесь, места хватит всем: https://tprg.ru/5Osj
Реклама
Обновился NumPy
Среди нововведений:
— появилась функция numpy.matvec() для перемножения матрицы и вектора;
— появилась функция numpy.vecmat() для перемножения вектора и матрицы;
— Улучшенная поддержка StringDType (специальный строковый тип данных в Numpy) в контексте Ufuncs (универсальные функции для эффективные вычислений в массивах без необходимости явного зацикливания).
Release Notes
#инструмент
@zen_of_python
Простыми словами о сложном: лямбда-функции
Помимо инструкции def имеется возможность создавать объекты функций в форме выражений. Из-за сходства с аналогичной возможностью в языке LISP она получила название lambda. lambda x, y, z: x + y + z
Это выражение создает функцию, которая будет вызываться позднее, но в отличие от инструкции def, выражение не связывает ее с именем. Именно поэтому lambda-выражения иногда называют анонимными (то есть безымянными) функциями.
На практике они часто используются, как способ получить встроенную функцию или отложить выполнение фрагмента программного кода.
В общем виде lambda-выражение состоит из ключевого слова lambda, за которым следуют один или более аргументов (точно так же, как список аргументов в круглых скобках в заголовке инструкции def) и далее, вслед за двоеточием, находится выражение:lambda argument1, argument2,... argumentN : выражение, использующее аргументы
lambda – это выражение, а не инструкция. По этой причине это ключевое слово может появляться там, где синтаксис языка Python не позволяет использовать инструкцию def – внутри литералов или в вызовах функций, например.
Тело lambda-выражения сродни тому, что вы помещаете в инструкцию return внутри определения def, – вы просто вводите результат в виде выражения вместо его явного возврата.
Вследствие этого ограничения lambda-выражения менее универсальны, чем инструкция def – в теле lambda-выражения может быть реализована только логика, не использующая такие инструкции, как if. Такая реализация предусмотрена заранее – она ограничивает возможность создания большого числа уровней вложенности программ: lambda-выражения предназначены для создания простых функций, а инструкции def – для решения более сложных задач.
Если отвлечься от этих различий, def и lambda выполняют одну и ту же работу. Как создаются функции с помощью инструкции def: def func(x, y, z): return x + y + zfunc(2, 3, 4) # 9
Того же эффекта можно достигнуть с помощью lambda-выражения, явно присвоив результат имени, которое позднее будет использоваться для вызова функции: f = lambda x, y, z: x + y + zf(2, 3, 4) # 9
@zen_of_python