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.
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.
Depuis Python 3.5, vous pouvez utiliser math.inf
:
>>> import math
>>> math.inf
inf
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.
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
Un autre moyen moins pratique consiste à utiliser Decimal
class:
from decimal import Decimal
pos_inf = Decimal('Infinity')
neg_inf = Decimal('-Infinity')
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
.
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()
Aussi, si vous utilisez sympy, vous pouvez utiliser sympy.oo
>>> from sympy import oo
>>> oo + 1
oo
>>> oo - oo
nan
etc.