Как я могу представить бесконечное число в Python? - PullRequest
475 голосов
/ 16 октября 2011

Как я могу представить бесконечное число в Python? Независимо от того, какое число вы вводите в программе, ни одно число не должно быть больше, чем это представление бесконечности.

Ответы [ 8 ]

591 голосов
/ 16 октября 2011

В Python вы можете сделать:

test = float("inf")

В Python 3.5 вы можете сделать:

import math
test = math.inf

А затем:

test > 1
test > 10000
test > x

Будет всегдабыть правдой.Если, конечно, как указано, x также равен бесконечности или «nan» («не число»).

Дополнительно (ТОЛЬКО для Python 2.x), по сравнению с Ellipsis, float(inf)меньше, например:

float('inf') < Ellipsis

вернет true.

60 голосов
/ 11 мая 2015

Начиная с Python 3.5 вы можете использовать math.inf:

>>> import math
>>> math.inf
inf
30 голосов
/ 16 октября 2011

Я не знаю точно, что вы делаете, но float("inf") дает вам бесконечность с плавающей точкой, которая больше, чем любое другое число.

22 голосов
/ 09 декабря 2016

Никто, по-видимому, не упомянул об отрицательной бесконечности явно, поэтому я думаю, что я должен добавить ее.

Для положительной бесконечности (только для полноты):

math.inf

Для отрицательной бесконечности:

-math.inf
22 голосов
/ 12 октября 2013

Другой, менее удобный способ сделать это - использовать Decimal класс:

from decimal import Decimal
pos_inf = Decimal('Infinity')
neg_inf = Decimal('-Infinity')
21 голосов
/ 06 мая 2016

В библиотеке NumPy есть бесконечность: from numpy import inf.Чтобы получить отрицательную бесконечность, можно просто написать -inf.

11 голосов
/ 08 ноября 2014

В python2.x был грязный хак, который служил этой цели (НИКОГДА не используйте его, если это абсолютно не нужно):

None < any integer < any string

Таким образом, проверка i < '' содержит True для любого целого числа i.

В python3 это было разумно объявлено устаревшим.Теперь такие сравнения заканчиваются на

TypeError: unorderable types: str() < int()
0 голосов
/ 01 января 2016

в первую очередь тип float ('inf') - это float, хотя его можно использовать для сравнения, но сравнивать его значительно медленнее.Так что, если вы сравниваете большой список чисел с плавающей точкой ('inf'), будьте осторожны, чтобы выбрать его.Я не уверен насчет производительности "math.inf".

...