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

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Хэш-таблица: что это такое и в чем преимущество перед словарями?

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

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
Какие Python-библиотеки для ботов Telegram вы считаете лучшими?
Anonymous Poll
33%
python-telegram-bot
5%
telethon
4%
telethon
13%
Другое (напишу в комментариях)
54%
Хочу посмотреть результаты
💩25😁2👍1🌭1
Что такое Zen of Python?

Это набор принципов для написания кода на языке программирования Python. Они были описаны в стихотворной форме и включены в документацию Python. Вот основы Zen of Python:

красивое лучше, чем уродливое. Он призывает к написанию кода, который является эстетически приятным и легко читаемым;
явное лучше, чем неявное. Код должен быть ясным и понятным, избегая неявных и запутанных конструкций;
простое лучше, чем сложное. Код должен быть простым, легким для понимания и поддержки;
сложное лучше, чем запутанное. Если решение сложной проблемы требует сложного кода, то это может быть оправдано, но код всё равно должен быть понятным и структурированным;
плоское лучше, чем вложенное. Использование множества вложенных блоков кода должно быть минимизировано, чтобы сделать его более понятным и легким для чтения;
разреженное лучше, чем плотное. Код должен быть разбит на отдельные части, чтобы облегчить его чтение и понимание;
читаемость имеет значение. Код должен быть написан таким образом, чтобы его можно было легко прочитать и понять другим программистам;
ошибки никогда не должны замалчиваться. Если возникают ошибки или исключения, они должны быть обработаны явно и не должны игнорироваться.

Эти правила не являются жесткими, но отклонение от них должно иметь вескую причину.

#лучшиепрактики
👍18🌭3
Статья «Python в лицах: история главных разработчиков языка программирования»

В этой статье мы расскажем о Гвидо ван Россуме, Тиме Питерсе, Бьярне Страуструпе и других разработчиках, которые повлияли на становление языка. Вы узнаете о том, какие достижения и открытия внесли эти люди в мир программирования, какие принципы и идеи были воплощены.

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

#история
👎4👍2
Сеньор притворился джуном на собеседовании

В этом забавном 15-минутном видео Senior Python Developer решил поиграть с интервьюером в кошки-мышки. Отдает чувством чьего-то превосходства?

Неожиданно, но лицемерия там нет. Соискатель честно трудился и отвечал на классические вопросы:
— насколько хорошо знает GIT и MongoDB;
— типы данных;
— изменяемые и неизменяемые типы данных;
— генератор и итератор;
— способы форматирования строк в Python;
— dunder-методы;
— инициализация классов;
— декораторы;
— PEP8;
— как прочитать JSON;
— фреймворки Python;
— что лучше: Flask или Django;
— задача с LeetCode.

Как вы думаете, что означает такой нестандартный результат собеседования?
👍131😁1
Необычный способ вырасти от джуна до миддл-разработчика

У многих из нас легко наберется с десяток каналов вакансий: тут и сохраненные поиски hh.ru, Вакансии в IT от TProger и LinkedIn. А как джуниор-специалисту вырасти над собой с помощью бесконечного скроллинга вакансий? Есть один интересный прием, но он предполагает, что ваш текущий работодатель дает вам достаточно свободы экспериментировать с подбором технологий.

Человеческий мозг устроен таким образом, что незаметно сканирует тексты вакансий на предмет частовстречающихся слов. Если вы тоже привыкли фильтровать вакансии по стеку, то могли заметить, что некоторые фреймворки, библиотеки и прочие инструменты «натирают глаз». Для Python-разработчика это могут быть Django, Flask, REST API или PostgreSQL.

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

1. Запомните нужные вам технологии. Смотрите как можно больше подходящих вам вакансий и они сами осядут в памяти.
2. Гуглите каждую технологию, чтобы хотя бы поверхностно понимать, для чего она нужна.
3. Постепенно вы придёте к мысли, что некоторые технологии уже можно применить в вашей работе. Не стесняйтесь пользоваться помощью фрилансеров — именно они помогут быстро развернуть тот или иной сервис, докрутят пример из сети под ваше потребности.
4. Как только вы смогли использовать технологию в реальной задаче, её можно смело добавлять в резюме. Ведь вы не только познакомились с ней, но и знаете, как применить её в работе.

А какие приемы роста знаете вы?

#карьера
6🌭2
Вывод строк двумя print'ами без разрыва

Это один из самых популярных запросов в поисковых системах среди новичков. Без лишних слов, вот как это делается: добавляем дополнительный аргумент end, который сообщит программе о том, что разрыв не нужен.

Вот пример:

print("Привет! ", end = '')
print("Прекрасный день.")

>>> Привет! Прекрасный день.

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

#лучшиепрактики
👍12🔥1
«Ядро планеты Python»: большой интерактивный учебник по Python, который дополняет сообщество

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

Всё с кучей примеров и небольшими дорожными картами по каждой теме, а последнее изменение — меньше недели назад: https://github.com/amaargiru/pycore

#python
👍252
Статья «Карьерный путь: из 1C специалиста в тимлида разработки на Python»

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

Кто работал в мире 1С, знает об особенной атмосфере 1С-франчайзи: низкие зарплаты, много неупорядоченных задач и, конечно, текучка. А если к этому примешиваются пандемия, релокейт, то получается вообще «полный набор». Однако автор статьи нашел в себе упорство переучиться и исполнить мечту. Рекомендуется к прочтению в минуты неурядиц.

#карьера
3
Вебхук-бот без затрат на VPS? Это возможно

В этом видеоуроке Jason Jurotich предлагает дешевый способ поднять своего бота, потратившись лишь на максимально простой домен. В стек входят следующие бесплатные технологии:
— aiogram (небезызвестная вам библиотека-конструктор);
— nginx (HTTP-сервер);
— Google Cloud VPC.

А какие еще бесплатные или lowcost-серверы знаете вы? Поделитесь в комментариях.

#aiogram #nginx
👍7
Почему бросают учить Python?

Согласно исследованию developerpitstop.com, около 40% опрошенных заявили, что бросили обучение Python до его окончания. Среди причин бросания фигурируют:

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

Как вам кажется, какие ещё факторы могут играть роль и с чем сталкивались вы? Поделитесь в комментариях.

#обучение
👍6👎4
​Конкуренты Python

Языков программирования насчитывают аж 2500 штук. И способность Python держаться в топах на фоне этого числа очень выгодно выделяет язык. Однако идеала не существует, и в некоторых разрезах этот ЯП обгоняют другие. Если вам стало интересно, с кем сравнивают Python и в чем, то вот небольшой рейтинг:

Golang хорошо подходит для больших данных. Многопоточность осуществляется через так называемые горутины (goroutines), которые потребляют намного меньше памяти, чем традиционные потоки в Python;

Mojo предоставляет очень быстрое исполнение и высокую производительность. Благодаря его асинхронности, Mojo обрабатывает большое количество запросов одновременно, не блокируя при этом выполнение программы;

Java широко используется в крупных предприятиях и веб-разработке. Обладает мощной системой типов, но более сложным синтаксисом;

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

Ruby удобен для создания быстрых прототипов и веб-приложений;

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

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

#факты
👍10🤡51
Дебаггинг с print() признан как метод еще в 1982 году

Оказывается, у этого столь популярного «ленивого» метода поиска багов уже есть название! Термин «волчий забор» (wolf fence) впервые упомянул Эдвард Гаусс аж в 1982 году.

Представьте, что вы на Аляске и ловите одного-единственного волка. Как это сделать? Сначала постройте забор в центре Аляски длиной в штат, дождитесь, когда завоет волк. Определите, по какую сторону забора он находится. Разделите на половины часть штата, где выл волк, и ждите воя снова. Повторяйте шаги, пока не встретитесь с волком вживую.

На форумах люди также называют этот метод «бинарным поиском» (binary search) или «бисекцией» (bisection).

Какие еще необычные названия у привычных вещей в Python вы знаете? Поделитесь в комментариях.

#начинающим
👍21😁41
Планируется ли ускорение Python?

Мир IT любит апгрейды производительности, и питонисты – не исключение. Уже существует множество проектов в области оптимизации Python

Например, PyPy — альтернативная реализация Python, которая существенно ускоряет выполнение кода. Однако она не всегда работает с некоторыми библиотеками или модулями Python.

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

Еще одним направлением улучшения производительности Python является JIT (Just-in-Time) компиляция, которая может значительно увеличить скорость выполнения программ, особенно тех, которые выполняют сложные вычисления. Примером может служить проект Numba.

Однако конкретного плана по ускорению со стороны Python Software Foundation нет.

Расскажите о случаях, когда вам не хватало стандартной скорости языка в комментариях.

#лучшиепрактики
👍1