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
Pandas AI — ИИ-библиотека для работы с Big Data

Большинство разработчиков на Python представляют, что такое pandas. Это главная библиотека в Python для работы с данными. Её активно используют аналитики данных и дата-сайентисты

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

Отличная новость, теперь можно «поговорить» со своей БД и просто задать нужный вопрос. А в ответ получить нужное вам значение. Звучит странно, но именно так и работает Pandas AI!

Рассказываем подробнее, что такое Pandas AI и как его использовать

#нейросети #инструменты
👍5👎1
Инвариантность, ковариантность и контравариантность на примере Python

До сих пор не понимаете, что такое ковариантность и контравариантность? Чувствуете, как они дышат вам в спину, но когда оборачиваетесь ничего не находите? Давайте попробую объяснить.

Всё просто:
1. Вариантность — перенос наследования исходных типов на производные от них типы.
2. Ковариантность — перенос наследования исходных типов на производные от них типы в прямом порядке.
3. Контравариантность — перенос наследования исходных типов на производные от них типы в обратном порядке.
4. Инвариантность — ситуация, когда наследование исходных типов не переносится на производные.

Всё равно не понятно? Тогда вот вам отличное видео, в котором объясняют инвариантность, ковариантность и контравариантность на примере Python.
6👍5👎1💩1
Как получить отрицательную длину len()≤0 на Python?

Встроенная функция len() возвращает длину (количество элементов) объекта. Количество элементов в коллекции не может быть отрицательным. Оно должно быть равно 0 или больше.

Но возможно ли получить негативное значение из встроенной функции len() в Python? Но тут скорее правильный вопрос, а зачем?

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

#начинающим #лучшиепрактики
🤔5👍4👎31
Forwarded from IT Юмор
Когда ушел в отпуск, отрубил всё каналы связи, но коллеги знают, что ты читаешь логи сервера:
😁84🔥9💩51👎1
10 фишек Python, которые поднимут ваш скилл на новый уровень

Работаете с Python и стремитесь улучшить свои навыки? Тогда эта статья для вас!

Мы разберем тонкости Enumeration, лямбда-функций, множественных присвоений, нарезки и других уникальных функций Python. Вы увидите, как словари, «моржовый» оператор :=, F-строки, any() и all(), zip() могут полностью изменить ваш подход к программированию.

https://tproger.ru/articles/tryuki-python-kotorye-podnimut-tvoj-skill-na-novyj-uroven

#советы
5👍3👎1
Как использовать оператор match по полной?

match case — собрат if-else, но одна из фишек оператора заключается в том, что он поддерживает деконструкцию (destructuring). То есть он может использовать шаблон, чтобы извлекать значения из сложных объектов, таких как кортежи или словари.

Например:

def make_point(point):
match point:
case(x, y):
return Point3D(x, y, 0)
case (x, y, z):
return Point3D(x, y, z)
case _:
raise TypeError("Нет координат")

>>> make_point((1, 2))
Point3D(x=1, x=2, z=0)

>>> make_point((1, 2, 3))
Point3D(x=1, x=2, z=3)

>>> make_point((1, 2, 3, 4))
TypeError: Нет координат

Теперь make_point() способна справиться с неполными данными. Если первый раз она приняла все три параметра, то в последующие уже справлялась с недостатком и переизбытком.

С такой функцией вы значительно понизите шансы на падение программы и не потратите на обработку всех ситуаций много времени.

#лучшиепрактики
👍11🤔7🔥3👨‍💻3
Как понять синтаксис лямбда-функций?

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

Символ λ отдалённо напоминает молнию, и ассоциации создаются верные: быстрое, краткое событие. Здесь более-менее понятно.

А как же быть с синтаксисом? Там часто творится нечто, что разобрать с наскока непросто. Общие правила таковы:

1. Символом x обозначайте «жертву» определённой операции, например:
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) # Выбираем только четные числа
print(even_numbers) # Вывод: [2, 4]

2. Кропотливо разбирайте, что делает каждая встроенная функция или оператор. Давайте разберём насыщенный пример:
list(map(trace(lambda x: x*2), range(3)))

- range() создаст перечисление от нуля до трех;
- trace() опишет подробно, что вызвана лямбда-функция с числами от range();
- map() применит умножение на 2 к каждому элементу;
list() превратит результат в список.

На выходе мы получим:

[TRACE] Calling <lambda> with args (0,) and kwargs [TRACE] Calling <lambda> with args (1,) and kwargs {} [TRACE] Calling <lambda> with args (2,) and kwargs {} [0, 2, 4]

Таким образом, на практике у вас появится «лямбда-насмотренность», то есть способность раскладывать сложное действие на простые операции и как бы нанизывать их друг на друга.

#лучшиепрактики
👍124👏4👎3🤮2
Трудно запомнить, легко застрять! Непривычные команды редактора vim, раз уж вы в него попали

Vim (Vi Improved) является мощным текстовым редактором, доступным в большинстве операционных систем, включая Linux, macOS и Windows. Помимо базовых команд (внести правку, сохранить, выйти) есть еще парочка действий с совсем уж непривычными способами вызова:

1. Удаление символов и строк: в командном режиме (который работает, пока вы не нажмете i, чтобы выполнить ввод) используйте команды x для удаления текущего символа и dd для удаления текущей строки.

2. Копирование, вырезание и вставка: в командном режиме используйте команду yy для копирования текущей строки, dd для вырезания текущей строки и p для вставки скопированного или вырезанного содержимого.

3. Поиск и замена: в командном режиме используйте команду / для поиска по тексту. Например, /search для поиска слова «search». Используйте команду :%s/old/new/g для замены всех вхождений «old» на «new» во всем файле.

4. Отмена и повтор действий: в командном режиме используйте команду u для отмены последнего действия и Ctrl + r для повтора отмененного действия.

5. Работа с несколькими файлами: чтобы открыть несколько файлов, запустите команду vim с указанием имен файлов:

vim file1.txt file2.txt

6. В командном режиме используйте команду :n для перехода к следующему файлу и :u для перехода к предыдущему файлу.

#vim
9💩3🔥2👍1
Вокруг стало как-то много аналитиков: бизнес-аналитик, системный аналитик, дата-аналитик. Кто есть кто?

Вместе с реальным специалистом разобрали, кто такой аналитик, и какие особенности его работы встречаются в крупных компаниях: https://tprg.ru/0Czd

#карьера
👍4💩3👀2
Пожалуй, лучший англоязычный Python-обучатор на YouTube

Кори Шефер создает обучающие видео целыми плейлистами аж с 2013 года и за это время обрел 1,1М+ подписчиков. Видео собраны в аккуратные, систематизированные плейлисты и регулярно появляются в результатах поиска, чтобы о Python вы ни спросили.

Этот замечательный курс Python для начинающих длится почти девять часов. Не обязательно выделять ресурс и просматривать все. Отдельно взятые ролики прекрасно закроют пробелы по вводным для языка темам: установка пакета, настройка IDE, базовые функции и так далее.

#обучение
👍15
Хотите поразвлечься Python-квизами?

Хорошая подборка интерактивов есть на realpython.com:

базовые типы данных;
HTTP-запросы с requests;
напиши свою первую программу;
как исправлять ошибки;
области видимости;
— и еще около 20 тестов.

Это точно поможет освежить имеющиеся знания и получить новые.

А на каком тесте у вас появилась азартная нервная дрожь?

#начинающим #тесты
👍4
Выйти из Vim — больше не проблема, причем везде

Оказывается, выход из Vim в разных ситуациях разный! Если вы используете этот редактор на своем локальном устройстве, достаточно набрать Esc + :wq! Последняя команда сохранит внесенные изменения.

Однако при подключении через SHH в той же командной строке Windows или Терминале macOS Escape не сработает, и легко оказаться в ситуации не-могу-выйти. В таком случае клавишу заменяет комбинация Ctrl + [.

Подробнее о том, как обращаться с Vim в этом посте.

#vim #советы
💩11👍2😁1
Хэш-таблица: что это такое и в чем преимущество перед словарями?

Хэш-таблица, как и словарь, хранит данные в парах «ключ – значение», но с небольшими дополнениями:

1. Ключ, сгенерированный хэш-функцией, точно будет уникальным
Например, ID наподобие «5647ddf9d5e2d0f862c241e892363cd32» скорее всего не будет повторяться. Идентификаторы должны быть уникальны. Если вдруг появится полный дубликат, он просто не будет добавлен.

Такой способ хранения подходит для инвентаризации чего угодно. Например, классификатор заболеваний или список налогоплательщиков.

2. Кодирование по стандартам
Данные можно закодировать с помощью определенного шифра, чтобы обеспечить информации безопасность, а также ускорить выполнение запросов.

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

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

#лучшиепрактики
👍18👎41
Этих фактов о Python вы точно не знали

Здесь не будет про «Летающий цирк Монти Пайтона».

— язык изначально был создан для забавы, как пет-проект;
— помимо PEP, существует гид Zen of Python – принципы: простота, читаемость, ясность и красота кода;
— согласно TIOBE-индексу, Python – самый популярный язык в мире в 2023 году;
— на pypi.org насчитывается более 300 тысяч питонических библиотек.

А какие интересные факты о языке знаете вы? Поделитесь в комментариях.

#факты #интересное
🤡65👍41🤗1
Обзор книги для миддлов «Python. К вершинам мастерства» Лучано Рамальо

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

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

Статья здесь.

#книги #обучение
👍6
Можно ли использовать Python для фронтенда?

Краткий ответ – да. Но ненапрямую.

Во фреймворках наподобие Django прямо в HTML-код можно внедрять переменные (так называемые теги), например:
<h2>{{ dog.name }}</h2>

То есть задав список из 100 собачих имен, мы отрендерим 100 веб-страниц с разными именами с помощью одной строки.

Вот другой пример: показать таблицу с двумя столбцами на основе списка some_list.

{% for o in some_list %}
<tr class="{% cycle 'row1' 'row2' %}">
...
</tr>
{% endfor %}


Еще одно немаловажное применение – визуализация данных. Питоническое комьюнити прекрасно умеет строить всевозможные графики, и порой проще встроить plotly или bokeh, чем писать что-то свое.

#django
👍84💩3🤡1
Cоздаем конвертер электронных книг за 8 строк

В своей статье «Python is the Perfect Tool for any Problem» американец Уилл Коэрсен описывает свой старт в качестве Python-разработчика, и приводит пример интересного решения задачи по перегонке электронной книги в .pdf, причем всего за восемь строк кода!

А какие у вас были первые интересные программы?

#начинающим
🤯6👏3🤔3👍1🤡1
Сколько времени нужно, чтобы освоить Python?

Согласно исследованию «Factors Affecting Students' Attitudes toward Computer Programming» Vilnius University, освоение поделили на три стадии:

Базовое понимание: С постоянными усилиями и структурированным планом обучения вы можете приобрести базовое понимание синтаксиса Python и основных концепций в течение 3-4 недель. В этом этапе обычно изучаются переменные, типы данных, условные операторы, циклы, функции.

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

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

#карьера
👍19😁9🤡61
​​Сравнение библиотек для создания ботов

На openweaver.com есть замечательная статья, сравнивающая современные библиотеки для создания ботов. Автор сравнил 13 библиотек по следующим параметрам:
— поддержка библиотеки создателями;
— качество;
— безопасность;
— лицензирование;
— вероятность переиспользования.

Переходите по ссылке и найдите для себя оптимальный вариант.
🔥3