Питонические атаки
1.19K subscribers
183 photos
4 videos
1 file
459 links
Всяческие заметки про программирование на Python и другие весёлые истории.
Download Telegram
Написал про забавный трюк, который в простых случаях позволяет использовать print как функцию в Python 2 (ну, на самом деле нет, но выглядит именно так).

https://semakin.dev/2020/05/python2_print/
Форматтер кода — ещё один, на мой взгляд, незаменимый в работе инструмент. Проект black в последнее время быстро набирает популярность — многие проекты берует его к себе на вооружение.

Это правда очень круто, когда вся кодовая база проекта абсолютно одинаково отформатирована. Глаз не отвлекается на всякие мелочи, код воспринимается легко. И для этого даже почти ничего не нужно делать!

https://semakin.dev/2020/05/black/
Одумойтес

#meme
Git-хуки — это невероятно мощный и полезный инструмент, который, как мне кажется, часто игнорируют и недооценивают.

Написал пост про Git-хуки в целом и про инструмент pre-commit, который упрощает работу с ними. Если ещё не пользуетесь, то наверняка будет полезно, на каком языке бы вы ни писали!

https://semakin.dev/2020/05/pre-commit/

#git
StackOverflow опубликовали результаты ежегодного опроса среди разработчиков за 2020 год.

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

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

https://semakin.dev/2020/05/no_newline_at_end_of_file/
Кстати, раз уж затронули тему опросов и исследований, то 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 опциональны — хочешь говнякаешь по-быстрому, а хочешь — пишешь на века.

Писать аннотации типов в Python — это очень полезно. Вот, даже пост об этом написал:

https://semakin.dev/2020/06/type_hints/
Согласно документации, встроенная функция 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
Замечаю, что начинающие питонисты часто пишут код примерно вот так:

for key in dictionary:
print(dictionary[key])

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

for value in dictionary.values():
print(value)

Так лучше. По заголовку цикла сразу же видно, что использоваться будут только значения словаря.

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

https://semakin.dev/2020/07/iterate_over_dict/
Forwarded from Mikhail Elovskikh
🐍 Онлайн-питап

🏡 Друзья, через неделю мы проводим второй Pytup в онлайне.

В среду 26 августа в 17:00 Мск поговорим про логгирование, распределенные локи и новости Python.

📆 Участие, как обычно, бесплатное, программа и регистрация на сайте.
В последнее время так мало тематических мероприятий, что грешно пропускать 😫
Forwarded from Alexander Bryazgin
🐍 Ребята, остались считанные минуты

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

Если вам удобнее смотреть на YouTube - вот вам ссылка
^ Это про онлайн Pytup 🐍
Опросы и статистика — это здорово, потому что в конечном итоге это позволяет всем нам понять, чем же мы занимаемся, куда мы все движемся, в каких областях стоит подтянуться, в чём смысол и так далее. Участвую во всех релевантных опросах и вам советую.

Python Software Foundation и JetBrains запустили свой ежегодный опрос: https://surveys.jetbrains.com/s3/c18-python-developers-survey-2020

Кстати, там даже какие-то призы разыгрывают.

P.S. Каждый раз путаюсь в годах во всех этих опросах, потому что StackOverflow УЖЕ публикует результаты за год в начале года, а JetBrains и PSF только начинают опрос в конце года. Когда же уже договорятся? 😩

#jetbrains
Forwarded from Geeks (A. Shpak)
Великодушный диктатор Гвидо Ван Россум известный тем, что является автором языка программирования Python. И сегодня в своем Твиттере он опубликовал сообщение о том, что теперь он сотрудник компании Microsoft. Почему он Великодушный диктатор? Так его называют в сообществе разработчиков, потому что он следит за процессом разработки Python и участвует в принятии ключевых решений. Очень интересное событие, о котором не могу не написать одной строкой. И я даже впервые за всю историю этого канала пишу пост с телефона!

https://twitter.com/gvanrossum/status/1326932991566700549