Какова точка float ('Inf') в Python?

Просто интересно, в чем смысл того, чтобы переменная хранила бесконечное значение в программе? Существует ли какое-либо фактическое использование, и есть ли там случай, когда было бы предпочтительнее использовать foo = float('Inf'), или это просто небольшой фрагмент, который они застряли для его размещения?

Ответ 1

Он действует как неограниченное верхнее значение для сравнения. Это полезно для нахождения минимальных значений для чего-то. например, вычисление затрат маршрута маршрута при пересечении деревьев.

например. Поиск "дешевого" пути в списке опций:

>>> lowest_path_cost = float('inf')
>>> # pretend that these were calculated using some worthwhile algorithm
>>> path_costs = [1, 100, 2000000000000, 50]
>>> for path in path_costs:
...   if path < lowest_path_cost:
...     lowest_path_cost = path
...
>>> lowest_path_cost
1

если у вас не было float('Inf') для вас, какое значение вы бы использовали для the initial lowest_path_cost? Было бы достаточно 9999999 - float('Inf') удаляет это предположение.

Ответ 2

Из документации:

Многие функции с плавающей точкой были добавлены. Функция float() теперь превратит строку nan в значение IEEE 754 Not A Number, а +inf и -inf в положительную или отрицательную бесконечность. Это работает на любой платформе с семантикой IEEE 754. (Предоставлено Кристианом Хаймсом; выпуск 1635.)

Также обратитесь к этому: Работа с Infinity и NaNs

Ответ 3

float('inf') может использоваться в сравнении, что делает код более простым и понятным. Например, в сортировке слиянием, float('inf') может быть добавлен в конец подмассива в качестве значения часового. Не путайте с использованием бесконечности в математике, ведь программирование - это не только математика.