uk
Feedback
Питонические атаки

Питонические атаки

Відкрити в Telegram

Всяческие заметки про программирование на Python и другие весёлые истории.

Показати більше
1 299
Підписники
Немає даних24 години
-37 днів
-1130 день
Архів дописів
Начинаю подозревать, что кто-то действительно читает посты в блоге 😅
Начинаю подозревать, что кто-то действительно читает посты в блоге 😅

Выражайте вашу радость в комментариях под этим постом 👇 Нет, я правда рад, ждал этого события уже весь последний месяц. Насколько это нормально, когда тебя радует релиз языка программирования?

🎉 Python 3.9.1 созрел! 🐍 Многие мудрые люди воздерживаются от использования версий ПО с цифрой 0 на конце. Ну всё, теперь уже 1. Это значит, что веткой 3.9 языка официально можно пользоваться! Разрешаю! https://www.python.org/downloads/release/python-391/

Великодушный диктатор Гвидо Ван Россум известный тем, что является автором языка программирования Python. И сегодня в своем Т
Великодушный диктатор Гвидо Ван Россум известный тем, что является автором языка программирования Python. И сегодня в своем Твиттере он опубликовал сообщение о том, что теперь он сотрудник компании Microsoft. Почему он Великодушный диктатор? Так его называют в сообществе разработчиков, потому что он следит за процессом разработки Python и участвует в принятии ключевых решений. Очень интересное событие, о котором не могу не написать одной строкой. И я даже впервые за всю историю этого канала пишу пост с телефона! https://twitter.com/gvanrossum/status/1326932991566700549

Опросы и статистика — это здорово, потому что в конечном итоге это позволяет всем нам понять, чем же мы занимаемся, куда мы все движемся, в каких областях стоит подтянуться, в чём смысол и так далее. Участвую во всех релевантных опросах и вам советую. Python Software Foundation и JetBrains запустили свой ежегодный опрос: https://surveys.jetbrains.com/s3/c18-python-developers-survey-2020 Кстати, там даже какие-то призы разыгрывают. P.S. Каждый раз путаюсь в годах во всех этих опросах, потому что StackOverflow УЖЕ публикует результаты за год в начале года, а JetBrains и PSF только начинают опрос в конце года. Когда же уже договорятся? 😩 #jetbrains

^ Это про онлайн Pytup 🐍

🐍 Ребята, остались считанные минуты Подключайтесь к Zoom - скоро вас добавит в нашу конференцию😉 Там вы сможете задавать вопросы докладчикам Если вам удобнее смотреть на YouTube - вот вам ссылка

В последнее время так мало тематических мероприятий, что грешно пропускать 😫

🐍 Онлайн-питап 🏡 Друзья, через неделю мы проводим второй Pytup в онлайне. ⏱ В среду 26 августа в 17:00 Мск поговорим про логгирование, распределенные локи и новости Python. 📆 Участие, как обычно, бесплатное, программа и регистрация на сайте.

Заблуждения по поводу времени, в которые верят программисты: * часть 1: https://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time * часть 2: https://infiniteundo.com/post/25509354022/more-falsehoods-programmers-believe-about-time

Люблю всякие исследования и статистику. JetBrains выкатили результаты исследования экосистемы разработки за 2020 год. Инфографика: https://www.jetbrains.com/ru-ru/lp/devecosystem-2020/ Пост в блоге: https://blog.jetbrains.com/ru/2020/06/22/the-state-of-developer-ecosystem-2020/ #jetbrains

Замечаю, что начинающие питонисты часто пишут код примерно вот так:
for key in dictionary:
    print(dictionary[key])

По сути, ключ словаря нужен в цикле лишь для того, чтобы извлечь значение, и сам по себе никак не используется. Не надо так. Напишем ту же самую программу, избавившись от лишних, незначащих деталей:
for value in dictionary.values():
    print(value)

Так лучше. По заголовку цикла сразу же видно, что использоваться будут только значения словаря. Написал статейку о том, как правильно обходить словари в Python, если нужны только ключи, только значения, либо и то, и другое одновременно. https://semakin.dev/2020/07/iterate_over_dict/

Согласно документации, встроенная функция zip() извлекает по одному элементу из каждой переданной последовательности (или вообще любых итерируемых объектов) и возвращает их все вместе в виде кортежа, делая так до тех пор, пока одна из последовательностей не закончится. Это значит, что конец более длинных последовательностей просто тихо выкидывается и не используется. Поведение абсолютно логичное, существует уже много лет, явно описано в документации, но, к сожалению, оно слишком неочевидное. В ситуации с последовательностями разной длины результат операции может получиться не таким, как ожидается, при этом никаких ошибок не произойдет. Это настолько распространённая проблема, что даже в стандартной библиотеке Python были баги по этому поводу. В Python 3.10 приняли PEP 618, который добавляет в zip() аргумент strict. В режиме zip(..., strict=True) функция будет контролировать, чтобы все последовательности заканчивались одновременно. Например, zip([1, 2, 3], [1, 2], strict=True) зарейзит ошибку ValueError, потому что переданы списки разной длины. По умолчанию zip() сохранит своё старое поведение. Ждём Python 3.10! Ссылки: * PEP 618: https://www.python.org/dev/peps/pep-0618/ * Документация по zip: https://docs.python.org/3/library/functions.html#zip

Круто, когда есть инструменты, на которые можно положиться. Круто, когда тайп-чекер через десять файлов и пятнадцать вызовов функций понимает, что ты передаёшь не правильный аргумент, и сообщает тебе об этом. Круто, когда тайп-чекер знает, как правильно пользоваться всеми (ну ладно, не всеми, но многими) внешними библиотеками и не даёт косячить. Это возможно лишь благодаря аннотациям типов. Ещё круто, что аннотации типов в Python опциональны — хочешь говнякаешь по-быстрому, а хочешь — пишешь на века. Писать аннотации типов в Python — это очень полезно. Вот, даже пост об этом написал: https://semakin.dev/2020/06/type_hints/

Кстати, раз уж затронули тему опросов и исследований, то JetBrains тоже недавно опубликовали результаты своего исследования среди Python-разработчиков. Интересное: * Python часто используют совместно с JavaScript, Bash, HTML/CSS и SQL; * основными областями применения Python остаются анализ данных, веб-разработка, машинное обучение и DevOps; * Python 2 уже почти не используется (10%), а Python 3.7 является самой популярной версией среди 3.x. https://www.jetbrains.com/lp/python-developers-survey-2019/ #jetbrains

Часто замечаю, что люди забывают ставить символы переноса строки в конце текстовых файлов (будь то исходники Python, SQL или просто TXT-файл). А это важная деталь, её отсутствие нарушает основопологающие стандарты разработки ПО и заставляет многие утилиты Unix сходить с ума. https://semakin.dev/2020/05/no_newline_at_end_of_file/

StackOverflow опубликовали результаты ежегодного опроса среди разработчиков за 2020 год. Из интересного: * Python является четвертым по популярности языком программирования (а если не учитывать HTML и SQL — это ж язык разметки и язык запросов, то вообще второй); * TypeScript сместил Python на третье место в рейтинге "Most Loved"; * Python до сих пор держит первое месте в рейтинге "Most Wanted". https://insights.stackoverflow.com/survey/2020

Git-хуки — это невероятно мощный и полезный инструмент, который, как мне кажется, часто игнорируют и недооценивают. Написал пост про Git-хуки в целом и про инструмент pre-commit, который упрощает работу с ними. Если ещё не пользуетесь, то наверняка будет полезно, на каком языке бы вы ни писали! https://semakin.dev/2020/05/pre-commit/

Недавно прошел Pytup (митап по Python), перебазировавшийся в онлайн из-за пандемии. Было две достаточно интересных и хардкорных темы. Запись доступна здесь: https://youtu.be/tpKs4UVe3Bk

pipenv выпустил долгожданный релиз! Это значит, что проект будет жить! Обновил статью про pipenv: https://semakin.dev/2020/04/pipenv/