Cool and Fun Python
538 subscribers
30 photos
8 videos
1 file
33 links
Крутой и весёлый Python. Случаи из практики и не только.
Download Telegram
Использование символа подчёркивания _ в циклах for: паттерны и антипаттерны

Обратил внимание, что новички, которые только познакомились с переменной _, начинают использовать её где нужно и где не нужно. Рассмотрим два варианта применения символа _ в контексте цикла for.


Хорошо: Использование _ только для управления циклом

Символ подчёркивания _ применяется в качестве имени переменной-итератора, если её значение не требуется явно использовать внутри тела цикла. Это позволяет подчеркнуть, что данная переменная несёт исключительно служебную функцию и не должна участвовать в дальнейшей обработке данных. Например:

data = [1, 2, 3]
for _ in range(len(data)):
print("Повторение без использования значения")

Здесь переменная _ используется только для того, чтобы выполнить определённое количество итераций, но она нигде более не упоминается в теле цикла. Этот подход является общепринятым и считается хорошим стилем программирования, поскольку он ясно показывает намерение разработчика и минимизирует риск случайного изменения или повторного использования переменной.

Познавательная минутка 🤓
Символ _ широко признан в сообществе Python как обозначение "переменной-пустышки".


Плохо: Использование _ внутри цикла

Если же символ _ используется не только для управления циклом, но также задействуется в теле цикла для каких-либо операций, это может привести к путанице и ошибкам. Рассмотрим следующий пример:

data = [10, 20, 30]
total = 0
for _ in data:
total += _
print(total)

Этот плохой код, потому что переменная _ здесь используется и в теле цикла. Такой подход нарушает соглашение об использовании _ . Правильно было бы использовать i или даже item вместо _.

Использование символа подчёркивания _ в циклах for может быть полезным инструментом. Правильное использование улучшает ясность и эффективность кода, тогда как злоупотребление может привести к трудностям в отладке и поддержке программного обеспечения.

✍️ - беру на вооружение
🤯 - как это работает?
👍 - for _ in data:

#познавательно #lifehack #python3k #python
Please open Telegram to view this post
VIEW IN TELEGRAM
112👍61🤯1🤣1🏆1
Всех с праздником! Ура! 🎉

И держите праздничный фокус.
my_dict = {
1: 'целое',
1.0: 'вещественное',
True: 'логическое',
}

print(my_dict)

Что же лежит внутри словаря, что же выведем на печать? 🤔

Познавательная минутка 🤓
Для хранения пар ключ-значение в словаре Python использует технологию хеширования ключа. Так можно быстро найти значение. Скорость O(1), т.е. быстрее некуда.

Итак, вычисляем хеш от 1 и помещаем первое значение в пустой словарь.
Далее вычисляем хеш для 1.0. Если такого хеша нет, создаём новую пару ключ-значение. А если есть, заменяем значение у существующего ключа.
И наконец вычисляем хеш для True. Если такого хеша нет, создаём новую пару ключ-значение. А если есть, заменяем значение у существующего ключа.

{1: 'логическое'}


Разрыв шаблона для новичка. И вполне обычная ситуация для более опытного питониста. 😉

Пусть эта особенность Python будем самым страшным событием в эти праздник и выходные.


✍️ - беру на вооружение
🤯 - как это работает?
🍾 - с праздником

#пасхалка #познавательно #python3k #python
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯7🍾64🕊1