20070
Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL
Кем стать: дата-сайентистом, аналитиком, инженером данных или ML
В Tproger разъяснили, какую профессию выбрать в условиях беспрерывного дефицита кадров, высокой сложности стека и нетривиальности переобучения. Годный способ для новичков посмотреть зарплатные вилки и образовательные нюансы.
#основы
@zen_of_python
Челлендж по запуску 12 простых IT-проектов за 12 месяцев
Летом 2023 г. появилось комьюнити инди-хакеров, в котором ребята решили запускать один простой продукт в онлайне каждый месяц.
И в реальном времени показывать: как разрабатывают, продвигают и сколько получилось заработать на запусках таких микро-проектов. Держите подборку их кейсов:
— пост про то, почему американцы платят $40 за простой конвертер картинок, который сделали за 4 недели, несмотря на обилие бесплатных аналогов.
— пост про то, как за 2 недели запустили темную тему с тарифами от $5 до $99. Четыре таких продукта приносят на пассиве как ЗП среднего разработчика.
— пост про то, как все может грустно закончиться, если 2 года пилить сложный продукт, не показывая его рынку.
— пост про то, как заработали 1,7 млн рублей на боте для создания фотокниг и какие фейлы допустили.
Первая находка в их комьюнити IT-билдеров — метод, который позволяет сделать запуск за 1 месяц.
Вторая находка — метод продвижения, который они используют. В среднем на продвижение одного IT-продукта уходит $150, причем есть продукты с 200К+ юзеров.
Вот здесь можно подписаться на канал, чтобы подглядеть за их запусками. А может, и попробовать сделать такой простой продукт самому.
Реклама. Рекламодатель: ИП Зуев Игорь Владимирович ИНН 360408359441, erid: 2W5zFJ6HzCG
Покоряем Django: Ваш Путеводитель
Узнайте, как овладеть разработкой на Python Django с помощью этого подробного руководства. Погрузитесь в изучение основных компонентов Django, освоение его передовых функций и создание мощных веб-приложений. Идеально для новичков и профессионалов, которые хотят улучшить свои навыки.
Подробности: https://metacode.hashnode.dev/mastering-python-django-development-a-comprehensive-guide
#en
@django_prog | Другие наши каналы
Функция pd.set_option() в библиотеке Pandas позволяет настраивать различные параметры отображения и поведения датафрейма, улучшая пользовательский опыт. Она позволяет изменять такие настройки, как максимальное количество отображаемых строк и столбцов, точность представления чисел, форматирование дат и времени, а также задавать бэкенд-движки при чтении файлов Excel, баз SQL и проч. Пользователи могут установить параметры как глобально, так и для конкретных сессий, что позволяет тонко настраивать визуализацию данных под свои нужды. Доступные параметры можно просмотреть с помощью pd.get_option() и pd.describe_option(), что упрощает управление настройками.
Документация
pyper | Параллелизм прост
Специализирующийся на обработке данных фреймворк, подходящий для ETL-пайплайнов, Data-микросервисов и всевозможных парсеров. Создатели обещают параллелизм и интуитивно понятный API. Выходит, что это некий собрат Airflow для данных.
Репозиторий проекта
#инструмент
@zen_of_python
А не полтора месяца, если ты единственный кодер на проекте.
#кек
@zen_of_python
Придумайте подпись к видео, но так, чтобы это относилось к языку программирования.
Победители прошлого интерактива — @antonterehov и @kirillkasparyants1.
#кек
@zen_of_python
10 советов, как вырасти из джуна в Python
Неочевидная подборка рекомендаций от небезызвестного англоязычного канала ArjanCodes, где питонист делится соображениями, что же сделает из новичка мидла. Помимо привычных включений (Comprehensions), здесь еще интересно и про генераторы, типизацию и написание тестов.
#основы
@zen_of_python
Квиз про README
Неожиданная, но весьма полезная тема для Python-разработчиков — верстка файла, описывающего репозиторий. Викторина рассчитана на 3-4 минуты и состоит из 5 вопросов. К ней можно подготовиться с помощью этой статьи.
#квиз
@zen_of_python
PGQueuer | Автоматизация для PostgreSQL
Это минималистичная библиотека на Python позволяет создавать воркфлоу (потоки задач) по расписанию с использованием механизмов LISTEN / NOTIFY и FOR UPDATE SKIP LOCKED PostgreSQL, а также упрощать обработку больших объемов данных.
#инструмент
Репозиторий проекта
@zen_of_python
Подборка лучших вымышленных обложек в стиле o'Reilly, описывающих жизнь типичного Python-разработчика.
Полный список книг здесь.
Придумайте подпись к фото, но так, чтобы это относилось к языку программирования.
Победители прошлого интерактива — @kirillkasparyants1 и @insigmo.
#кек
79 рублей в месяц за Ubuntu 1 Гб RAM, 8 Гб SSD, 1 ядро, публичный IP-адрес. Аптайм весьма высокий.
А вы где берете минимальные сервера? Поделитесь в комментариях.
#обсуждение
@zen_of_python
По просьбе подписчика
Вопрос задает подписчик Лёша Трошин:
«Расскажите как правильно работать с аргументами функции. Если в приложении например есть КОНСТАНТА то нужно ли ее передавать в функцию или же достаточно просто вызвать из глобальной области? Кажется это называется «чистота функции», расскажите про это пожалуйста. И может рекомендации по именованию аргументов внутри - передали аргумент в функцию, внутри функции имя аргумента такое же с суффиксом делать?»
От админа: сначала расскажем про (не)чистые функции, затем вернемся к вопросу про константы. Про рекомендации к именованию в разберем в отдельном посте.
Есть два важных подхода к проектированию: «чистые» и «нечистые» функции. Это способ описать её взаимодействие с окружающими ее потенциальными объектами.
Чистые функции не имеют «побочных эффектов» и всегда возвращают одинаковый результат для одних и тех же входных данных. Их можно свободно вызывать в любой среде, зная, что они не повлияют на состояние программы за пределами своей области. Они изолированы от остального кода.
Пример:a = 1b = 2def add(a, b): return a + badd(a, b)
Эта функция берет два аргумента и возвращает их сумму. Результат зависит только от входных данных, и add() не изменяет ничего вне своей области.
Нечистые функции могут изменять состояние программы (то есть объектов в ней) или иметь побочные эффекты, такие как модификация глобальных переменных, вывод данных в консоль или работа с файлами. Предсказать результат программы с такой «участницей» порой бывает очень трудно, и потому в учебниках часто рекомендуют избегать таких функций в первые годы программирования.
Пример:def append_element(lst, element): lst.append(element)my_list = [1, 2, 3]append_element(my_list, 4)print(my_list) # [1, 2, 3, 4]
В этом примере функция append_element() изменяет глобальную переменную my_list. Каждый раз при вызове функции, состояние программы (то есть списка) изменяется.
Идеальная программа должна сочетать в себе как можно больше чистых функций для большей предсказуемости, в то время как нечистые функции следует использовать только при необходимости взаимодействия с внешним миром.
Теперь к вопросу про константы (если верно понимаю вопрос).
В этой теме критически важно помнить про изменяемые и неизменяемые объекты, поскольку это влияет на их способность меняться под действием «грязных» функций:
Изменяемые объекты — списки, словари, множества, байтовые массивы. Неизменяемые объекты — числа, строки, кортежи, фиксированные множества.
В первом примере мы возьмем переменные a и b, равные 1 и 2 соответственно, и отправить аргументами add():a = 1b = 2def add(a, b): a += 1 return a + bprint(add(a, b)) # 4print(a) # 1
Намеренно слегка модифицируем add() и добавим увеличение a на единицу (a += 1), чтобы вы могли сравнить работу «чистой» и «грязной» функций.
В локальной области видимости add() фактически создаются другие аргументы a и b. Поэтому при вызове a вне функции мы получим исходное ее значение — единицу.
Если теперь сделать add() «грязной», то таким образом:a = 1b = 2def add(): global a # Указываем, что будем использовать глобальную переменную a a += 1 # Изменяем значение глобальной переменной return a + bprint(add()) # Вывод: 4print(a) # Теперь вывод: 2, так как a была изменена
Обратите внимание, что в аргументы в скобки add() при объявлении функции теперь не подаются. Если вызывать из глобальной функции a, то она фактически больше не является константой (становится переменной).
#основы
@zen_of_python
Квиз по функциональному программированию
Небольшая викторина на 10 вопросов, посвященная не только ФП, но и лямбда-функциям, map() и итерациям в целом. Для подготовки можно использовать эту статью.
#квиз
@zen_of_python
itertools | База
Шикарная англоязычная статья для начинающих про встроенный модуль для итерирования почти всего. Там вы разберетесь:
— с популярными методами (product, chain, pairwise);
— итераторами, меняющими разрешение выходного объекта;
— фильтрующими и комбинирующими итераторами.
#факт
@zen_of_python
VSCode vs. PyCharm
Переход с первой на вторую IDE стоит совершать, по мнению админа, не в первый год разработки, а когда наступает некое плато в развитии навыка кодить. В этот момент стать лучшей версией себя поможет именно PyCharm: хоть ворнингов с подчеркнутыми словами станет больше, зато узкопрофильность шаг за шагом позволит стать вашему проекту более «ухоженным» и читаемым.
Для сомневающихся — скурпулезный разбор различий между двумя популярными питоническими IDE от фулстэк-разработчика, на русском языке и длиной в 32 минуты.
Смотреть на замедленотьюбе
#факт
@zen_of_python
В Postman теперь можно создавать ИИ-агентов
Создатели Postman AI Agent Builder обещают беспрецедентно простой no-code инструмент для создания AI-ассистентов. Есть даже визуальный конструктор, графики-бенчмарки для разных LLM и возможность сдруживать разные методы и API. В роадмапе даже хостинг таких агентов.
Посадочная на Postman.com
#инструмент
@zen_of_python
А недонайм никуда не девается, и число проектов растет.
#кек
@zen_of_python
И не только ведь Junior, давайте будем честны
#кек
@zen_of_python
Вопросы подписчиков
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросыновичков
@zen_of_python
Квиз про args и kwargs
Небольшая англоязычная викторина с RealPython, посвященная позиционным и именованным аргументам. Состоит из 6 вопросов и займет не более 10 минут. Перед прохождением можно освежить познания с помощью статьи.
#квиз
@zen_of_python
Вышел Python 3.14.0a4
Среди фичей:
— «Ленивая» интепретация аннотаций (на скриншоте, см. документацию);
— API языка C вместо C-подобных методов и функций;
— Депрекатнули PGP-подписи и проч.
Это ранняя версия ЯП для тестирования разработчиками.
Release Note
#факт
@zen_of_python
Как читать чужой код и понимать его
Как думаете, что делает этот код?
from tests.test_catalog import run_basic_tests
if __name__ == "__main__":
run_basic_tests()
Вопросы подписчиков
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросыновичков
@zen_of_python
Python 1.0.0 вышел 31 год назад: с чего всё начиналось
Взгляните, как отличался язык 1.0.0 от сегодняшней «тройки»: много воды утекло, но даже тогда главная фича была та же — простой синтаксис. Сегодня язык возглавляет рейтинг TIOBE самых популярных ЯП.
#факт
@zen_of_python