Веб-версияОткрыть в Telegram

СообщениеPythonic циклы

6 мая 2023
P
Pythonic циклы Поговорим о циклах в Python. Вот пример цикла, который мог бы написать человек с C или Java бэкграундом: items = [‘a’, ‘b’, ‘c’] i = 0 while i < len(items): print(items[i]) i += 1 Что с ним не так? 🤖здесь мы вручную отслеживаем индекс, а значит, создаем себе возможность сделать ошибку на единицу. Легко заехать в элемент items[3], заменив < на <=; 🤖 если тело цикла длинное, то частая ошибка это сделать так, что условие выхода никогда не выполнится, и войти в бесконечный цикл; 🤖 в Python можно выразительнее. А именно: for item in items: print(item) Это решение 🦋освобождает от проблем, описанных выше, 🦋использует продвинутые средства Python, о которых я еще когда-нибудь расскажу 🦋читается почти как английский язык или псевдокод из учебника. О таком и говорят pythonic -- когда возможности языка используются, чтобы сделать код лаконичным, читаемым и поддерживаемым. Но что если вам правда, очень, действительно нужен индекс? Иногда это бывает, и тогда на помощь спешит конструкция enumerate(), которая предоставляет и сам элемент и его индекс: for i, item in enumerate(items): print(i) В общем, если вам в Python цикле нужно делать операции не с индексами, а с самими объектами, то средства языка позволяют писать чистый и менее подверженный ошибкам код. Если индексы все же нужны, выбирайте enumerate(): пользоваться индексами напрямую — это не pythonic. Закончу цитатой. «В программировании есть только две сложные вещи: инвалидация кеша, выбор имени переменной, и ошибки на единицу» (Джефф Этвуд, создатель StackOverflow).
1 · 250 ·

Рядом в ленте

PPYTHON IN DEPTH🐍Грамотно ставим запятые Допустим, у нас в коде есть список: >>> capitals = ['Beijing', 'New Delhi'] Добавим в него ещё город и сделаем diff двух файлов перед коPPYTHON IN DEPTH🐍Кеширование небольших чисел в CPython Поговорим о небольших числах в CPython. Возьмем, например, два числа, 10 и 300: >>> a = 10 >>> b = 300 >>> a is 10 True >>
это сообщение
PPYTHON IN DEPTH🐍Странная переменная в Python. Когда человек впервые видит в программе что-то вроде _, v in my_dict.items(): pass он обычно теряется. Что это за переменная “_”? PPYTHON IN DEPTH🐍Одинарное подчеркивание в конце переменной Недавно говорила об одинарном символе подчеркивания в Python. Теперь поговорим о подчеркивании в конце переменной: my
🐍🐍Python🪆🐍Python🪆@python_chat_ru · группа · Технологии
20участников39сообщений в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем