Как работает преобразование типов при делении `int / int`?

В Python 3, деление двух целых чисел (`int / int`) всегда возвращает число с плавающей точкой (`float`). Даже если результат деления - целое число, тип будет `float`.

Для получения целочисленного результата, используйте оператор целочисленного деления `//`. Например, `5 // 2` вернет `2` (целое число).

В Python 2, при делении двух целых чисел (int / int), результат, как правило, также будет целым числом. Это называется целочисленным делением (integer division или floor division). Результат округляется в меньшую сторону до ближайшего целого числа.

Например:

  • 5 / 2 вернет 2
  • -5 / 2 вернет -3

Для получения результата с плавающей точкой (float) в Python 2, нужно чтобы хотя бы один из операндов был числом с плавающей точкой. Это можно сделать одним из следующих способов:

  • Преобразовать одно из чисел в float: float(5) / 2 или 5 / float(2)
  • Записать одно из чисел как float: 5.0 / 2 или 5 / 2.0

В Python 3, деление int / int всегда возвращает число с плавающей точкой (float). Если нужно получить целочисленное деление, используется оператор //.

Например (Python 3):

  • 5 / 2 вернет 2.5
  • 5 // 2 вернет 2
  • -5 // 2 вернет -3

Резюме: Важно помнить, какая версия Python используется, поскольку поведение деления int / int различается. В Python 2 используется целочисленное деление по умолчанию, а в Python 3 - деление с плавающей точкой.

0