Питонические атаки
1.19K subscribers
183 photos
4 videos
1 file
459 links
Всяческие заметки про программирование на Python и другие весёлые истории.
Download Telegram
Согласно документации, встроенная функция 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
🎉 Python 3.9.1 созрел! 🐍

Многие мудрые люди воздерживаются от использования версий ПО с цифрой 0 на конце. Ну всё, теперь уже 1. Это значит, что веткой 3.9 языка официально можно пользоваться! Разрешаю!

https://www.python.org/downloads/release/python-391/
Выражайте вашу радость в комментариях под этим постом 👇

Нет, я правда рад, ждал этого события уже весь последний месяц. Насколько это нормально, когда тебя радует релиз языка программирования?
Начинаю подозревать, что кто-то действительно читает посты в блоге 😅
Ладно, раз кто-то читает, то я пишу. Правда, пока не совсем по теме.

Описал свой увлекательный процесс настройки роутера на OpenWRT на точечный обход заблокированных сайтов. В статье описывается настройка DNS-over-HTTPS, всякие скрипты, которые скачивают списки заблокированных адресов, VPN WireGuard, файрволл, сетевые интерфейсы, конфиги, cron. Короче, полный фарш.

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

https://semakin.dev/2020/12/openwrt_vpn_rkn/
Фотосессия роутера в пряже для вчерашнего поста. Позирует, красавец. Аж захотелось купить его ещё раз. Тот самый момент, когда пригодились скиллы жены-инстаграмщицы.
Годный небольшой курс по основам Git в игровой форме. Для совсем новичков этого, пожалуй, будет недостаточно, но для закрепления уже имеющихся знаний — самое то. Информация подана визуально — это классно. Узнал кое-что новое.

https://learngitbranching.js.org/?locale=ru_RU

#git
Задонатил чутка в Python Software Foundation. В этом и, видимо, в следующем году из-за ковидов прибыль фонда от конференций сильно меньше обычного. Ребятам нужна помощь, чтобы держаться на плаву и поддерживать экосистему вокруг языка в рабочем состоянии.

Посмотрите страницу кампании по сбору донатов, там есть всякие акции. Например, можно купить PyCharm со скидкой, а все собранные деньги пойдут в PSF.

Я на страницах истории: https://www.python.org/psf/donations/#donors:~:text=Andrey%20Semakin