Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL
Генератор QR-кодов для Wi-Fi
Сегодня многие роутеры уже умеют сами генерировать QR-код для подключения к сети. Но если вы хотите разобраться в том, как это работает с точки зрения кода или ваш роутер так не умеет, то эта библиотека вам поможет.
GitHub
#библиотека
Большая шпаргалка по Python
У этого репозитория уже более 36 тысяч звёзд на GitHub, а последнее обновление было на прошлой неделе.
Шпаргалка покрывает большинство возможностей Python, поэтому её полезно держать при себе каждому Python-разработчику. Особенно если работаете на MacOS или Linux.
Сохраняйте в избранное и не забывайте: https://github.com/gto76/python-cheatsheet
#шпаргалка
А может, именно вы — будущий Маск? Или Безос?
Узнайте, на кого вы похожи из лидеров технологического бизнеса. Переходите по ссылке, отвечайте на вопросы теста и берите на заметку: https://tprg.ru/VSex
Реклама
Совет для ускорения проверки по вхождению элементов
#видео
Вы наверняка знаете, что ChatGPT написан на Python. Но как именно он помогает питонисту в повседневной работе в 2024 году?
@zen_of_python
Как себя ощущает «плюсовик» когда ускорил программу на 100 наносекунд:
Читать полностью…Задача о Рокфеллере
Вам дан тензор с суммами на счетах, где account[i][j] — это сумма денег, которую имеет i-й клиент в j-м банке.
accounts = [[1,2,5],[3,6,1]]
У 1-го клиента два счета на сумму 4 (1 + 3)
У 2-го — 8 (2 + 6)
У 3-го — 6 (5 + 1)
>>> accounts = [[1,2,5],[3,6,1]]
>>> find_richest(accounts)
... 2
diagrams | Визуализируем архитектуру с помощью кода
Простая утилита, позволяющая быстро демострировать устройство проекта. т.е. значки компонентов импортируются и связываются:with Diagram("Simple Web Service with DB Cluster", show=False):
dns = Route53("dns")
web = ECS("service")
with Cluster("DB Cluster"):
db_primary = RDS("primary")
db_primary - [RDS("replica1"),
RDS("replica2")]
dns >> web >> db_primary
Репозиторий проекта
#библиотека
@zen_of_python
Вопрос подписчика
Задает @webstriker:
«Какая библиотека подходит для запуска LLM на потребительской видеокарте для генерации текста в том же Jupyter Notebook? Llama cpp, Tensor rt или что то еще?»
NB! Пожалуйста, будьте взаимовежливы. Всем нам нужна возможность выговориться и попросить помощи без угрозы быть затроленным.
#обсуждение
@zen_of_python
Какой шрифт лучше подойдёт для программирования?
Забавный полуразвлекательный квиз с realpython.com (на английском, состоящий из 12 вопросов и рассчитанный на 10 минут. Узнаете кое-что новое про свои визуальные потребности в IDE.
🌭 — мне достаточно дефолтного шрифта в любой IDE
🌚 — выбираю свой (напишите, какой шрифт любите)
#квиз
@zen_of_python
Поздравляем победителей
Задачу о зарплатах верно решили:
— @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
vectorlite | SQLite как векторное хранилище
Это было вопросом времени: если вы сталкивались с прикруткой своей базы знаний к GPT, то знаете, что такое векторное хранилище (FAISS, Pinecone).
Китайцы подгадали потребность разработчиков RAG и запилили решение, которое in-place преобразует обычные SQL-таблицы в вектора. Браво. Ждём, когда крупные компании — разработчики БД «зашерлочат» (заберут себе) эту замечательную фичу.
Репозиторий проекта
#библиотека
@zen_of_python
Вопросы новичков
Zen of Python поддерживает новоприбывших в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросыновичков
@zen_of_python
Зачем нужен List Comprehensions и как он помогает Python-разработчикам
List Comprehensions — это мощный инструмент в Python, который позволяет создавать списки простым и читаемым способом. Используя List Comprehensions, вы можете избавиться от громоздких циклов for
и сделать код более компактным.
Основной синтаксис List Comprehensions выглядит так:
[выражение for элемент in итерируемый_объект]
выражение
определяет, что будет добавлено в новый список, а элемент
перебирает каждый элемент в итерируемый_объект
.squares = [x**2 for x in range(1, 6)]
print(squares) # Результат: [1, 4, 9, 16, 25]
even_numbers = [x for x in range(1, 6) if x % 2 == 0]
print(even_numbers) # Результат: [2, 4]
matrix = [[x for x in range(1, 4)] for y in range(1, 4)]
print(matrix) # Результат: [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
people = [
{"first_name": "Василий", "last_name": "Марков", "birthday": "9/25/1984"},
{"first_name": "Регина", "last_name": "Павленко", "birthday": "8/21/1995"}
]
birthdays = [person["birthday"] for person in people if "birthday" in person]
print(birthdays) # Результат: ['9/25/1984', '8/21/1995']
Целых 25 лучших практик для разработки на Python в одной статье
Если вы хотите не просто программировать на Python, но и делать это качественно, быстро, создавать гибкий и масштабируемый код, который поймёте не только вы, но и ваши коллеги, то читайте и запоминайте:
https://proglib.io/p/25-luchshih-praktik-razrabotki-na-python-2024-07-09
Что бы вы добавили к этому списку?
#советы
Метод append() в Python: что это, синтаксис и примеры кода
Метод append()
применяется к спискам (то есть к list
‘ам) в Python и используется для добавления нового элемента в конец списка.
В этой статье мы подробно рассказали как работает метод, разобрали синтаксис, привели несколько примеров кода и сравнили с методом extend()
, чтобы вы могли использовать его в полную силу:
https://tproger.ru/articles/append-python
#основы
Freeway — инструмент пентестеров для взлома Wi-Fi
Не все хакеры плохие. Есть те, кто специально ищут эксплойты в коде, чтобы передать их разработчикам до того, как их обнаружат злоумышленники.
Это касается и безопасности Wi-Fi сетей, которые они проверяют с помощью утилиты Freeway для Python.
Если хотите проверить свои силы в пентесте на собственной домашней сети, то по ссылке найдёте инструкцию по установке и использованию:
https://github.com/FLOCK4H/Freeway
Использовать только для этичного хакинга и проверки собственной безопасности!
#безопасность #пентест
Вопрос подписчика
Задаёт @Tuburetka:
«Подскажите с чего начать учить пайтон? И где можно практиковаться?»
NB! Пожалуйста, будьте взаимовежливы. Всем нам нужно место, где можно получить поддержку.
От админа: подписчики привнесли в мою жизнь годнейший YouTube-канал selfedu_rus/videos">@selfedu. Он на русском, там и про основы Py, и про Django, и проч.
#обсуждение
@zen_of_python
А внизу якобы простолюдины, пишущие на «медленных» языках
Читать полностью…Минутка полезных мемов на Zen of Python
Меню вверху / Среда выполнения / Сменить среду выполнения. Чтобы не слить на k-Means слишком много времени, как админ.
#факт
@zen_of_python
Если бы у питонистов был свой покровитель, как его звали? Святой Социопатрик. Поделитесь в комментариях.
#кек
@zen_of_python
Вопросы новичков
Zen of Python поддерживает новоприбывших в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросыновичков
@zen_of_python
Бенчмарк pandas vs. vaex vs. polars
Разработчик Дмитрий Руденко asimandia/benchmarking-performance-polars-vs-vaex-vs-pandas-f1c889dccc12">сравнил три решения для обработки данных в разрезах производительности и расходования памяти. Получилось очень доступно, даже новички поймут. NB! Для просмотра статьи на Medium вам потребуется VPN.
Спасибо подписчику @Pik_rat за рекомендацию.
@neuro_channel
Loki | Факт-чекинг
Это и подобные решения заиграли новым красками, когда GPT стали галлюцинировать. Библиотека «обернётся» вокруг вывода нейросети и укажет, где правда, а где ложь. Из топа самых актуальных решений 2024 года, несомненно.
#библиотека
@zen_of_python
Графики с аннотациями на канвасе
Помните, когда в последний раз накладывали текст поверх экспортированноо графика? В небольшой англоязычной статье разобрались, как навешивать сноски на диаграмму. 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
Вопрос подписчика
Задаёт @swell_d:
«есть здоровое приложение на flask. хочу собрать контейнер docker так, чтобы не было доступа к исходному коду приложения. попробовал скомпилировать pyc и удалить py - ничего не вышло. куда копать?»
NB! Пожалуйста, будьте взаимовежливы. Всем нам нужна возможность выговориться и попросить помощи без угрозы быть затроленным.
#обсуждение
@zen_of_python
Задача о расстоянии между массивами
На входе два массива 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
Pygame — разработка игр на Python
Pygame — это библиотека для создания игр, предоставляющая программистам инструменты для разработки. Она включает в себя возможности для работы с графикой и анимацией, управления клавиатурой и мышью, а также обработки звука.
Ловите небольшой курс по этой игровой библиотеке, где в процессе обучения вы напишете культовую Space Invaders:
https://youtu.be/ilP1dImCuJ8?si=0BNIQYvlQ_PJ9KfR
#курс #python #gamedev #ru