web-dev-qa-db-fra.com

Comment puis-je représenter un nombre infini en Python?

Comment puis-je représenter un nombre infini en python? Peu importe le nombre que vous entrez dans le programme, aucun nombre ne doit être supérieur à cette représentation de l'infini.

486
ssierral

En Python, vous pouvez faire:

test = float("inf")

Dans Python 3.5, vous pouvez effectuer les opérations suivantes:

import math
test = math.inf

Puis:

test > 1
test > 10000
test > x

Sera toujours vrai. Sauf si, bien entendu, comme indiqué, x est également l'infini ou "nan" ("pas un nombre").

De plus (Python 2.x UNIQUEMENT), par rapport à Ellipsis, float(inf) est inférieur, par exemple:

float('inf') < Ellipsis

reviendrait vrai.

602
WilHall

Depuis Python 3.5, vous pouvez utiliser math.inf:

>>> import math
>>> math.inf
inf
61
rightfold

Je ne sais pas exactement ce que vous faites, mais float("inf") vous donne un nombre infini infini, qui est supérieur à tout autre nombre.

30
Ned Batchelder

Personne ne semble avoir mentionné explicitement l'infini négatif, je pense donc que je devrais l'ajouter.

Pour l'infini positif (juste pour être complet):

math.inf

Pour l'infini négatif:

-math.inf
25
Sнаđошƒаӽ

Un autre moyen moins pratique consiste à utiliser Decimal class:

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

Il y a une infinité dans la bibliothèque NumPy: from numpy import inf. Pour obtenir l'infini négatif, on peut simplement écrire -inf.

22
Lenar Hoyt

Dans python2.x, il y avait un bidouillage sale qui servait à cela (ne l'utilisez JAMAIS sauf si c'est absolument nécessaire):

None < any integer < any string

Ainsi, la vérification i < '' contient True pour tout entier i.

Il a été raisonnablement déconseillé en python3. Maintenant, de telles comparaisons aboutissent à

TypeError: unorderable types: str() < int()
11
Antony Hatchkins

Aussi, si vous utilisez sympy, vous pouvez utiliser sympy.oo

>>> from sympy import oo
>>> oo + 1
oo
>>> oo - oo
nan

etc.

0
Victor