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

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Первый тест фичи:
😁706👎1
Дайджест Python #5: как сделать свой Copilot и работать с данными в Pandas

Собрали свежий дайджест из лучших материалов по Python.

В нём вы узнайте, как написать свой аналог GitHub Copilot без знаний об искусственном интеллекте, как работать с данными и памятью в Pandas и как написать нейросеть, которая сможет самостоятельно распознавать объекты.

#python #нейросети
5👎1🤮1
​​​​​Самые популярные вопросы на собеседовании: «Как работает функция map?»

Обычно, когда нужно обработать и преобразовывать все элементы в итерируемом объекте, первое, что напрашивается, это цикл for.

Но у for есть несколько недостатков, которых можно избежать, используя map():

1. Поскольку map() написан на C и сильно оптимизирован, его внутренний подразумеваемый цикл более эффективен, чем обычный цикл for.

2. Второе преимущество использования map() — потребление памяти. С помощью for вам нужно сохранить весь список. А map() вы получаете элементы по запросу, и только один элемент находится в памяти в данный момент.

То есть map() полезен, когда вам нужно применить функцию преобразования к каждому элементу в коллекции или в массиве и преобразовать их в новый массив. Она возвращает объект (итератор), который перебирает значения, применяя функцию к каждому элементу. В случае необходимости объект можно преобразовать в список:

def add_three(x):
return x + 3
li = [1,2,3]
list(map(add_three, li))
#=> [4, 5, 6]

Например, здесь к каждому элементу в списке мы добавляем число 3.

#собеседование
👍41🔥1
Python для начинающих: дорожная карта в 2023 году

Это просто просто огромная крутая дорожная карта по изучению Python с нуля. Не смотрите, что партнёрский материал — это колаб Tproger и Skypro. Ребята просто честно помечают такие вещи, но годноты от этого меньше не становится.

В общем, смотрите, изучайте и сохраняйте, чтобы не потерять: https://tproger.ru/articles/python-roadmap-2023-ljn8jvxfj/

#шпаргалки
👍13
​​​​​​Самые популярные вопросы на собеседовании: «Объясните, как работает функция reduce»

reduce принимает функцию и последовательность — и проходит по этой последовательности. На каждой итерации в функцию передаются как текущий элемент, так и выходные данные предыдущего элемента. В конце концов, возвращается одно значение:

from functools import reduce
def add_three(x,y):
return x + y
li = [1,2,3,5]
reduce(add_three, li)
#=> 11

Возвращается 11, то есть сумма 1+2+3+5.

#собеседование
👍292
Генерируем 2D-мир с помощью клеточного автомата на Python

Вообще, клеточный автомат сам по себе очень интересная штука. Простыми словами, это — модель, в которой состояние ячеек-клеток изменяется в зависимости от окружающих её клеток.

Простейшие клеточные автоматы используются в криптографии, моделировании физических процессов, поведения людей, в биологии, и в целой куче других важных и интересных штук. Да и вообще, это очень красиво и залипательно. И вот одно из необычных применений для клеточных автоматов — генерация карты для 2D-мира.

Хорошая статья, в которой можно попрактиковаться сразу и в геймдеве, и в теории клеточных автоматов, и в принципе закодировать что-нибудь интересное на питоне, вместо очередного калькулятора или просмотрщика погоды: https://habr.com/ru/post/721956/

#алгоритмы
👍175👎2
Декораторы в Python: понять и полюбить

Декораторы — это вам не «обычное» процедурное программирование, когда вы объявляете функции с блоками кода, и просто вызываете их. В Python всё куда интереснее!

Если вкратце, декоратор — это функция, которая позволяет обернуть другую функцию и расширить её функциональность без изменения её кода. Новички не очень любят декораторы и зря. А вот опытные Python-программисты знают, что это один из самых полезных инструментов в Python.

Давайте разбираться, что это за декораторы, как их использовать и как задействовать всю их магию: https://tproger.ru/translations/demystifying-decorators-in-python/
12👍5
​​Топ 5 ресурсов для изучения Python: часть 3

На канале уже есть пара подборок из самых годных ресурсов, которые помогают прокачаться в Python. Делюсь ещё пятёркой самых достойных.

Сохраняйте себе и учитесь на здоровье:

1. Pythonspot
Pythonspot это каталог ресурсов и материалов по Python, в котором весь контент разделён на категории: по уровню навыков, тематике (пользовательские интерфейсы, сети и т. д.) и платформе (Android, iOS и т.п.).

2. Онлайн-книга «Укус питона»
Это отличный учебник для начинающих. Более опытные программисты могут смело использовать его в качестве справочника — на случай, если нужно будет что-то вспомнить. Книга бесплатная, есть русский перевод.

3. Курс по Python от университета Райса на Coursera
Курс замёт займет несколько недель, зато регистрация и сам курс совершенно бесплатны. А вот если будет нужен сертификат, за него уже придётся платить.

4. Ускоренный курс по Python
Это серия документов и презентаций, которые могут использоваться для быстрого обучения языку Python программистов, знающих другие языки.

5. Real Python
Real Python это премиальный онлайн-курс с более чем 1300 страниц контента, 9 часов видео, упражнениями и примерам кода. Подписка платная, но на сайте есть много статей, которые можно читать совершенно бесплатно.

#подборка
👍154👏1
Ищем человека, который будет строить сообщество по темам Python / Data Science / AI в Tproger

Если вы довольно неплохо разбираетесь в этих темах и при этом видите в себе желание рассказывать об этом другим разработчикам и вовлекать их в горячие обсуждения — возможно, это именно ваша вакансия.

Подробности, тестовое задание и отклик здесь: https://tprg.ru/GEZL
4
Cоздаём видео по текстовому описанию у себя дома на основе диффузионной нейросети ModelScope text2video 1.7B

19 марта Alibaba выпустили нейросеть ModelScope text2video, создающую короткие видеоролики по текстовому описанию. Подобных нейросетей сейчас становится всё больше и больше. Но если остальные требуют для запуска каких-нибудь A100 с 40 ГБ видеопамяти, то эта нейросетка крута тем, что её можно вполне себе комфортно запустить с 12 ГБ видеопамяти. А энтузиасты даже умудрились уместить её в 4 ГБ.

И вот неплохой, но простенький гайд, как работать с этой моделькой с помощью Python: https://habr.com/ru/post/724284/

#ml #нейросети
🔥5👍3
Пока некоторые остальные разработчики не воспринимают всерьёз питонистов, Superjob насчитал у них зарплату в 500 тысяч рублей в месяц.

По их данным, это самая большая зарплата среди айтишников. В топе также программисты на PHP и C++.

Пока ты смеёшься над питонистами и пхп-шниками, они смеются над твоей зарплатой ¯\_(ツ)_/¯

#карьера #кек
👍16😁9🍌3🔥21
Руководство по работе с Gradio: создание веб-интерфейса для моделей машинного обучения

В этом руководстве вы узнаете, как создавать простые в использовании настраиваемые компоненты пользовательского интерфейса для вашей модели машинного обучения, любого API или даже произвольной функции Python с помощью нескольких строк кода и Gradio: https://proglib.io/p/rukovodstvo-po-rabote-s-gradio-sozdanie-veb-interfeysa-dlya-modeley-mashinnogo-obucheniya-2023-03-06

#ml #библиотека
👍3👀2
Когда использовать .__repr__(), а когда — .__str__() в Python?

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

Именно здесь появляются .__repr__() vs .__str__(). Если вкратце, .__repr__() возвращает подробное описание для разработчика, а .__str__() возвращает более простое описание с информацией для пользователя программы. Но, как всегда, есть нюансы.

И вот отличная статья, в которой доступным языком (хоть и на английском) объясняют, что, когда и где лучше использовать: https://realpython.com/python-repr-vs-str/

#советы
👍11👎3
Ломаем текстовую капчу на примере VK или брутфорсинг до сих пор актуален

Капча — автоматизированный тест Тьюринга, помогающий отсеивать подозрительные действия недобросовестных роботов от реальных людей. Но текстовая капча сильно устарела, тем не менее, её до сих пор используют популярные сервисы. В том числе и VK.

В этом мануале показали, как создать собственную нейросеть по распознанию текстовых капч, имея под рукой домашний компьютер, базовые знания в Python и немножко примеров капч: https://habr.com/ru/post/673440/

#нейросети #безопасность
👍23👎31
​Большая шпаргалка по Python

Годный репозиторий с почти 32 тысяч звёзд и последними обновлениями около недели назад. Шпаргалка покрывает большинство возможностей Python, поэтому её полезно держать при себе каждому Python-разработчику.

Забирайте себе: https://github.com/gto76/python-cheatsheet

#шпаргалка
👍262👏2
Ну наконец-то кто-то поможет перефразировать все ваши «претензии» к коллеге в доброжелательный текст без мата.

#нейросети #кек
👍39😁83🔥2
Почему большинство программистов выбирают Python?

По последним данным количество пользователей Python увеличилось на 4,4 млн человек. Это самый большой прирост среди многих языков. Более 70% разработчиков, занятых в области науки о данных и машинного обучения, также используют Python.

Если вы тоже знаете эти факты, но у вас иногда не хватает аргументов, чтобы объяснить свой выбор сишникам, джаваскриптерам и любителям ассемблера, эта статья для вас: https://nuancesprog.ru/p/17069/
👍2
​​​​​​​Самые популярные вопросы на собеседовании: «В чем разница между pass, continue и break?»

Иногда бывает нужно просто ничего не делать. Но Python не позволяет создавать класс, функцию или оператор if без кода внутри. Здесь нам помогает заглушка pass — она как раз и означает «ничего не делать».

Код в примере ниже выдаст ошибку, если внутри i > 3 не будет кода, поэтому мы используем pass:
a = [1,2,3,4,5]
for i in a:
if i > 3:
pass
print(i)
#=> 1
#=> 2
#=> 3
#=> 4
#=> 5

continue отправляет вас к следующему элементу в цикле, останавливая выполнение для текущего элемента. Так print(i) никогда не получает значения i < 3:
for i in a:
if i < 3:
continue
print(i)
#=> 3
#=> 4
#=> 5

break же полностью прерывает цикл, и последовательность больше не повторяется. В нашем примере на цифре 3 цикл прерывается, а этот и следующие элементы не печатаются:
for i in a:
if i == 3:
break
print(i)
#=> 1
#=> 2

#собеседование
👍363💩3
Жаль этого добряка...
😁52👍6🤬21👎1