Питонические атаки
رفتن به کانال در Telegram
Всяческие заметки про программирование на Python и другие весёлые истории.
نمایش بیشتر1 299
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-37 روز
-1130 روز
آرشیو پست ها
1 299
Выражайте вашу радость в комментариях под этим постом 👇
Нет, я правда рад, ждал этого события уже весь последний месяц. Насколько это нормально, когда тебя радует релиз языка программирования?
1 299
🎉 Python 3.9.1 созрел! 🐍
Многие мудрые люди воздерживаются от использования версий ПО с цифрой 0 на конце. Ну всё, теперь уже 1. Это значит, что веткой 3.9 языка официально можно пользоваться! Разрешаю!
https://www.python.org/downloads/release/python-391/
1 299
Великодушный диктатор Гвидо Ван Россум известный тем, что является автором языка программирования Python. И сегодня в своем Твиттере он опубликовал сообщение о том, что теперь он сотрудник компании Microsoft. Почему он Великодушный диктатор? Так его называют в сообществе разработчиков, потому что он следит за процессом разработки Python и участвует в принятии ключевых решений. Очень интересное событие, о котором не могу не написать одной строкой. И я даже впервые за всю историю этого канала пишу пост с телефона!
https://twitter.com/gvanrossum/status/1326932991566700549
1 299
Опросы и статистика — это здорово, потому что в конечном итоге это позволяет всем нам понять, чем же мы занимаемся, куда мы все движемся, в каких областях стоит подтянуться, в чём смысол и так далее. Участвую во всех релевантных опросах и вам советую.
Python Software Foundation и JetBrains запустили свой ежегодный опрос: https://surveys.jetbrains.com/s3/c18-python-developers-survey-2020
Кстати, там даже какие-то призы разыгрывают.
P.S. Каждый раз путаюсь в годах во всех этих опросах, потому что StackOverflow УЖЕ публикует результаты за год в начале года, а JetBrains и PSF только начинают опрос в конце года. Когда же уже договорятся? 😩
#jetbrains
1 299
1 299
🐍 Онлайн-питап
🏡 Друзья, через неделю мы проводим второй Pytup в онлайне.
⏱ В среду 26 августа в 17:00 Мск поговорим про логгирование, распределенные локи и новости Python.
📆 Участие, как обычно, бесплатное, программа и регистрация на сайте.
1 299
Заблуждения по поводу времени, в которые верят программисты:
* часть 1: https://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time
* часть 2: https://infiniteundo.com/post/25509354022/more-falsehoods-programmers-believe-about-time
1 299
Люблю всякие исследования и статистику. 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
1 299
Замечаю, что начинающие питонисты часто пишут код примерно вот так:
for key in dictionary:
print(dictionary[key])
По сути, ключ словаря нужен в цикле лишь для того, чтобы извлечь значение, и сам по себе никак не используется. Не надо так. Напишем ту же самую программу, избавившись от лишних, незначащих деталей:
for value in dictionary.values():
print(value)
Так лучше. По заголовку цикла сразу же видно, что использоваться будут только значения словаря.
Написал статейку о том, как правильно обходить словари в Python, если нужны только ключи, только значения, либо и то, и другое одновременно.
https://semakin.dev/2020/07/iterate_over_dict/1 299
Согласно документации, встроенная функция
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#zip1 299
Круто, когда есть инструменты, на которые можно положиться. Круто, когда тайп-чекер через десять файлов и пятнадцать вызовов функций понимает, что ты передаёшь не правильный аргумент, и сообщает тебе об этом. Круто, когда тайп-чекер знает, как правильно пользоваться всеми (ну ладно, не всеми, но многими) внешними библиотеками и не даёт косячить.
Это возможно лишь благодаря аннотациям типов. Ещё круто, что аннотации типов в Python опциональны — хочешь говнякаешь по-быстрому, а хочешь — пишешь на века.
Писать аннотации типов в Python — это очень полезно. Вот, даже пост об этом написал:
https://semakin.dev/2020/06/type_hints/
1 299
Кстати, раз уж затронули тему опросов и исследований, то 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
1 299
Часто замечаю, что люди забывают ставить символы переноса строки в конце текстовых файлов (будь то исходники Python, SQL или просто TXT-файл). А это важная деталь, её отсутствие нарушает основопологающие стандарты разработки ПО и заставляет многие утилиты Unix сходить с ума.
https://semakin.dev/2020/05/no_newline_at_end_of_file/
1 299
StackOverflow опубликовали результаты ежегодного опроса среди разработчиков за 2020 год.
Из интересного:
* Python является четвертым по популярности языком программирования (а если не учитывать HTML и SQL — это ж язык разметки и язык запросов, то вообще второй);
* TypeScript сместил Python на третье место в рейтинге "Most Loved";
* Python до сих пор держит первое месте в рейтинге "Most Wanted".
https://insights.stackoverflow.com/survey/2020
1 299
Git-хуки — это невероятно мощный и полезный инструмент, который, как мне кажется, часто игнорируют и недооценивают.
Написал пост про Git-хуки в целом и про инструмент
pre-commit, который упрощает работу с ними. Если ещё не пользуетесь, то наверняка будет полезно, на каком языке бы вы ни писали!
https://semakin.dev/2020/05/pre-commit/1 299
Недавно прошел Pytup (митап по Python), перебазировавшийся в онлайн из-за пандемии. Было две достаточно интересных и хардкорных темы.
Запись доступна здесь: https://youtu.be/tpKs4UVe3Bk
1 299
pipenv выпустил долгожданный релиз! Это значит, что проект будет жить!
Обновил статью про
pipenv: https://semakin.dev/2020/04/pipenv/