Как я могу представить бесконечное число в Python?

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

9 ответов


в 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) меньше, e.g:

float('inf') < Ellipsis

вернет true.


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

>>> import math
>>> math.inf
inf

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


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

from decimal import Decimal
pos_inf = Decimal('Infinity')
neg_inf = Decimal('-Infinity')

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


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

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

math.inf

к минус бесконечности:

-math.inf

В вместо python2.x был грязный хак, который служил этой цели (никогда не используйте его, если это не абсолютно необходимо):

None < any integer < any string

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

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

TypeError: unorderable types: str() < int()

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


value = 0x7fffffff

установите значение, используя код выше