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

47
Nirvik Baruah 14 Дек 2015 в 13:28

3 ответа

Лучший ответ

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

Например Нахождение «самого дешевого» пути в списке вариантов:

>>> 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') удалит это предположение.

68
Shayan Amani 2 Фев 2018 в 18:15

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

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

Также ознакомьтесь со следующим: Работа с бесконечностью и NaNs

12
Rob 6 Май 2019 в 06:02

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

1
Yossarian42 8 Июн 2019 в 08:58