TGViewer
Яндекс Практикум. Программирование и анализ данных Яндекс Практикум. Программирование и анализ данных @practicumtech · 11.2K subscribers
Post #603 3.97K
#тонкости_языка: Python 🐍

Мы начинаем экспериментальную рубрику, в которой приглашённые эксперты будут делиться тонкостями различных языков.

Сегодня мы позвали Антона Репушко — автора курсов «Мидл Python-разработчик» и «Асинхронное программирование на Python».

Антон поделился примерами кода, которые иллюстрируют неочевидные особенности поведения Python.

📌 Генераторы и runtime
array = [1, 8, 15]
g = (x for x in array if array.count(x) > 0)
array = [2, 8, 22]

>>> print(list(g))
[8]


В выражении генератора предложение in вычисляется во время инициализации, но выражение с условием вычисляется только во время выполнения.

Таким образом, перед выполнением массив переназначается в список [2, 8, 22], и поскольку из 1, 8 и 15 только число 8 встречается больше 0 раз, генератор выдает только 8.

📌 Разница между is и =
>>> a = 256
>>> b = 256
>>> a is b
True

>>> a = 257
>>> b = 257
>>> a is b
False

>>> a = 257; b = 257
>>> a is b
True


Оператор is проверяет, относятся ли оба операнда к одному и тому же объекту.

Оператор == сравнивает значения обоих операндов и проверяет, совпадают ли они.

То есть is нужно использовать для ссылочного равенства, а == для равенства значений.

Пример, чтобы прояснить ситуацию:
>>> [] == []
True
>>> [] is [] # These are two empty lists at two different memory locations.
False


📌 Быть или не быть (is (not...) или is not)
>>> 'something' is not None
True
>>> 'something' is (not None)
False


is not — это отдельный оператор и его поведение отличается от случая, когда is и not чем-то разделены.

is not вычисляется в False только в случае, когда переменные по разные стороны оператора указывают на один и тот же объект.

Во всех остальных случаях выражение будет True.

👍 Поделитесь обратной связью в комментариях: интересно ли вам узнавать об особенностях языков? О каких языках хотелось бы узнать больше?
  • 👍 25
  • 🔥 10
  • ❤ 1
  • 🗿 1
More from @practicumtech
  1. Oct 7, 2026Как ИИ читает рукописи и синтезирует речь Нейросети читают почерк не хуже человека, а гово…
  2. Oct 5, 2026Чем занимается ИИ-инженер и что изменилось с приходом LLM🔖 Антон Моргунов — инженер по ма…
  3. Sep 30, 2026Напоминаем, на каких курсах с нуля начинается обучение в первой половине октября. Если ище…
  4. Sep 29, 2026Воркшоп «ИИ для программирования» В новом сезоне практических видео эксперты Практикума ра…
  5. Sep 28, 2026СТО Практикума о том, как ИИ меняет обучение и профессию разработчика Делимся разговором с…
  6. Sep 25, 2026Персональный план развития ИИ-навыков Пройдите тест из четырёх вопросов, чтобы получить ка…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →