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


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

9 367

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) меньше, например:

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.х был грязный хак, который служил этой цели (никогда не используйте его без крайней необходимости):

None < any integer < any string

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

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

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

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

value = 0x7fffffff

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