TGViewer
Python: задачки и вопросы Python: задачки и вопросы @quiz_python · 6.93K subscribers
Post #4515 718
Разбираем по шагам:

1️⃣В выражении True == 1 используется оператор равенства: булевый тип 𝚋𝚘𝚘𝚕 является подклассом 𝚒𝚗𝚝, и значение True ведёт себя как единица, поэтому результат сравнения — логическое True, и переменная 𝚊 получает значение True.​

2️⃣Во второй строке 1 == True просто меняет местами операнды, но семантика == остаётся прежней: значения всё так же считаются равными, поэтому переменная 𝚋 тоже становится True.​

3️⃣В третьей строке вызывается type(True) — результатом будет объект типа 𝚋𝚘𝚘𝚕, и type(1) — объект типа 𝚒𝚗𝚝; оператор is здесь проверяет, являются ли оба результата вызова type(...) одним и тем же объектом типа, и так как 𝚋𝚘𝚘𝚕 и 𝚒𝚗𝚝 — разные классы, выражение даёт False, поэтому 𝚌 получает False.​

4️⃣При вызове print(a, b, c) функция печатает текущие значения 𝚊, 𝚋 и 𝚌 через пробел, что даёт строку True True False.

Эта задачка важна тем, что показывает: булевы значения в Python — это не магический отдельный тип, а вполне себе подкласс целых чисел, поэтому True, 1 и 1.0 могут неожиданно сливаться в один и тот же ключ словаря или проходить проверки типов там, где ожидается int.
  • ❤ 1
  • 👍 1
More from @quiz_python
  1. Sep 22, 2026Развёрнутое пояснение: 1. Вызов build_batch создаёт генератор, но его тело пока не исполня…
  2. Sep 22, 2026Post #4884
  3. Sep 22, 2026Развёрнутое пояснение: 1. Вызывается load_config, управление переходит в блок try. 2. Перв…
  4. Sep 22, 2026Post #4882
  5. Sep 21, 2026Развёрнутое пояснение: 1. make_handlers создаёт пустой список handlers. 2. Цикл дважды при…
  6. Sep 21, 2026Post #4880
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 →