Zen of Python
20.1K subscribers
1.21K photos
161 videos
32 files
3.16K links
Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Forwarded from Веб-страница
​​ В Python могли встроить вирус. Все из-за утечки админского токена языка через публичный Docker-контейнер

В мире программирования произошла одна из самых опасных ошибок за последнее время. И все из-за невнимательности одного из разработчиков: https://tproger.ru/news/v-python-mogli-vstroit-virus--vse-iz-za-utechki-adminskogo-tokena-yazyka-cherez-publichnyj-docker-kontejner

#python
😱9
Поздравляем победителей

Задачу  о повороте матрицы верно решили:
@Python3k;
@erg_y;
@vsugoyak.

Кратчайшее верное решение предложил @vsugoyak:


def turn_matrix(grid, k):
  return [[grid[(place:=(_n+(n:=len(grid[0]))*_m-k))%(n*len(grid))//n][place%n] for _n in range(len(grid[0]))] for _m in range(len(grid))]


#задача

@zen_of_python
🍾1
​​Вопрос от подписчика

Задаёт @Tenessy:

«К какой архитектуре backend приложений нужно стремиться? есть какие то гайды?»

NB! Пожалуйста, будьте взаимовежливы. Всем нам порой нужно место, где можно попросить помощи.

#обсуждение

@zen_of_python
👍5
​​Python без GIL: где попробовать

В версии 3.13 заядлых питонистов обрадовали возможностью отключить GIL (Global Interpreter Lock). Эта фича предотвращает одновременное выполнение нескольких потоков, что из года в год вызывает бурю возмущения от искушённых многопоточностью Go / Java и иже с ними.

На py-free-threading.github.io излагают и про установку такого CPython, и про совместимость, и про портирование модулей.

Подробнее про free-threaded Python

#факты

@zen_of_python
​​ViperIDE для MicroPython

Для пользователей облегчённой версии Python есть годная среда разработки, причём с веб-интерфейсом и привычными для любой IDE вещами вроде подсветки синтаксиса, эмулятором девайсов и проч. Как вишенка — мобильная (!) версия.

🌭 — никогда не юзал MicroPy
— полезно

Репозиторий проекта

#библиотека

@zen_of_python

Репозиторий проекта

#ide

@zen_of_python
🌭455👍2👏1😈1
​​Квиз: типы данных

Небольшая викторина с realpython.com (на английском) про типы данных. Состоит из 15 вопросов, рассчитана на 10 минут.

Для подготовки можно пользоваться этой статьёй.

#квиз

@zen_of_python
👍2
​​Вопрос подписчика

Задаёт @Liviy:

«Помогите скомпилировать проект
Для компиляции использовал PyInstaller, но при запуске на другом макбуке ошибка bad cpu type
Как сделать исполняемый файл универсальным?»

NB! Пожалуйста, будьте взаимовежливы. Всем нам порой нужно место, где можно попросить помощи.

#обсуждение

@zen_of_python
👍2🔥2👏1
Зачем нужна эта библиотека Python в веб-разработке

Пройдите небольшую викторину, чтобы узнать, насколько вы знакомы с Python-библиотеками и фреймворками, которые используют в веб-разработке. Может статься, даже найдёте новые для себя решения.

#квиз

@zen_of_python
11
Pygame — разработка игр на Python

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

Ловите небольшой курс по этой игровой библиотеке, где в процессе обучения вы напишете культовую Space Invaders:

https://youtu.be/ilP1dImCuJ8?si=0BNIQYvlQ_PJ9KfR

#курс #python #gamedev #ru
​​Вопросы новичков

Zen of Python поддерживает новоприбывших в особой рубрике. Как это работает:

— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;

#вопросыновичков

@zen_of_python
👍1
😁19
Задача о расстоянии между массивами

На входе два массива arr1 и arr2 и целое число d. Напишите функцию find_arr_distance(), которая вернёт расстояние между двумя массивами.

Расстояния определяется как количество элементов arr1[i] таких, что не существует элемента arr2[j], где arr1[i] - arr2[j]| <= d.

Для проверки:


>>> arr1 = [4,5,8],
>>> arr2 = [10,9,1,8]
>>> d = 2
>>> find_arr_distance(arr1, arr2, d)
... 2


Объяснение:

Для arr1[0]=4 имеем:
|4-10|=6 > d=2
|4-9|=5 > d=2
|4-1|=3 > d=2
|4-8|=4 > d=2

Для arr1[1]=5 имеем:
|5-10|=5 > d=2
|5-9|=4 > d=2
|5-1|=4 > d=2
|5-8|=3 > d=2

Для arr1[2]=8 имеем:
|8-10|=2 <= d=2
|8-9|=1 <= d=2
|8-1|=7 > d=2
|8-8|=0 <= d=2

#задача

@zen_of_python
1
​​vectorlite | SQLite как векторное хранилище

Это было вопросом времени: если вы сталкивались с прикруткой своей базы знаний к GPT, то знаете, что такое векторное хранилище (FAISS, Pinecone).

Китайцы подгадали потребность разработчиков RAG и запилили решение, которое in-place преобразует обычные SQL-таблицы в вектора. Браво. Ждём, когда крупные компании — разработчики БД «зашерлочат» (заберут себе) эту замечательную фичу.

Репозиторий проекта

#библиотека

@zen_of_python
​​Вопрос подписчика

Задаёт @swell_d:

«есть здоровое приложение на flask. хочу собрать контейнер docker так, чтобы не было доступа к исходному коду приложения. попробовал скомпилировать pyc и удалить py - ничего не вышло. куда копать?»

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

#обсуждение

@zen_of_python
1👍1
Поздравляем победителей

Задачу о зарплатах верно решили:

@mad_shamann;
@Python3k;
@GeorKu;
@vsugoyak.

Самое краткое верное решение предложил @vsugoyak:


def get_mean_salary(salaries):
  return int(sum(srt_tr:=(srt:=sorted(salaries))[srt.count(srt[0]):-srt.count(srt[-1])])/len(srt_tr))


NB! Многие предложенные решения не прошли проверку, поскольку в списке зарплат возможны повторы, что искажает вычисление среднего.

Отдельный респект @Python3k за решение, учитывающее алгоритмическую сложность. И @GeorKu за неявную ситуацию с повтором зарплат в списке.

@zen_of_python
🍾4👍2
Графики с аннотациями на канвасе

Помните, когда в последний раз накладывали текст поверх экспортированноо графика? В небольшой англоязычной статье разобрались, как навешивать сноски на диаграмму.


gg.annotate(
'text',
x=exceeds100 + 2, y=5000 - 600,
label='Total coal production first\nexceeds 100 million tonnes\nper year.',
color=text_col,
family=body_font,
ha='left',
size=9,
va='top'
)


#факты

@zen_of_python
3
​​Какой шрифт лучше подойдёт для программирования?

Забавный полуразвлекательный квиз с realpython.com (на английском, состоящий из 12 вопросов и рассчитанный на 10 минут. Узнаете кое-что новое про свои визуальные потребности в IDE.

🌭 — мне достаточно дефолтного шрифта в любой IDE
🌚 — выбираю свой (напишите, какой шрифт любите)

#квиз

@zen_of_python
🌭26🌚7
This media is not supported in your browser
VIEW IN TELEGRAM
Loki | Факт-чекинг

Это и подобные решения заиграли новым красками, когда GPT стали галлюцинировать. Библиотека «обернётся» вокруг вывода нейросети и укажет, где правда, а где ложь. Из топа самых актуальных решений 2024 года, несомненно.

#библиотека

@zen_of_python
👍2
​​Вопрос подписчика

Задает @webstriker:

«Какая библиотека подходит для запуска LLM на потребительской видеокарте для генерации текста в том же Jupyter Notebook? Llama cpp, Tensor rt или что то еще?»

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

#обсуждение

@zen_of_python
4