Что выведет этот код?


print(hash((1, 2)))

Результатом будет целое число, представляющее хеш кортежа (1, 2). Хеш-значение будет одинаковым при каждом запуске Python в рамках одной сессии. Значение хеша зависит от реализации Python и может отличаться в разных версиях Python или на разных платформах.

Задача простая и проверяет базовое понимание работы с хешами в Python.

Код print(hash((1, 2))) выведет хеш кортежа (1, 2).

Что важно знать:

  • hash() - встроенная функция в Python, которая возвращает хеш-значение объекта.
  • Кортежи (tuple) являются неизменяемыми (immutable) объектами, поэтому их можно использовать как ключи в словарях и для вычисления хешей.
  • Хеш-значение зависит от содержимого объекта и может отличаться от запуска к запуску Python, особенно если используется рандомизация хешей (PYTHONHASHSEED). Однако, для одного и того же объекта в течение одного запуска программы хеш-значение будет одинаковым.

Пример вывода: (значение может отличаться на вашей машине)

3713081631934410535

Дополнительные соображения:

  • Если бы вместо кортежа был использован список ([1, 2]), то вызов hash([1, 2]) вызвал бы ошибку TypeError: unhashable type: 'list', потому что списки являются изменяемыми.
  • Объекты, которые имеют одинаковое значение, должны иметь одинаковый хеш-код. (Если a == b, то hash(a) == hash(b)). Обратное, однако, не обязательно верно (разные объекты могут иметь одинаковый хеш-код - коллизия).
0