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

comment représenter un nombre infini en python? Peu importe le nombre que vous entrez dans le programme, aucun nombre ne devrait être plus grand que cette représentation de l'infini.

367
demandé sur Elias Zamaria 2011-10-16 03:06:22

9 réponses

en Python, vous pouvez faire:

test = float("inf")

en Python 3.5, vous pouvez faire:

import math
test = math.inf

et ensuite:

test > 1
test > 10000
test > x

Sera toujours vrai. Sauf bien sûr, comme indiqué, x est aussi infini ou "nan"("pas un nombre").

En Plus (Python 2.x seulement), par comparaison à Ellipsis , float(inf) est moindre, E. g:

float('inf') < Ellipsis

retournerait vrai.

463
répondu WilHall 2015-10-16 13:15:57

depuis Python 3.5, vous pouvez utiliser math.inf :

>>> import math
>>> math.inf
inf
42
répondu rightfold 2015-05-10 21:49:53

Je ne sais pas exactement ce que vous faites, mais float("inf") vous donne un flotteur infini, qui est plus grand que tout autre nombre.

27
répondu Ned Batchelder 2011-10-15 23:09:22

une autre façon, moins commode, de le faire est d'utiliser Decimal classe:

from decimal import Decimal
pos_inf = Decimal('Infinity')
neg_inf = Decimal('-Infinity')
22
répondu Denis Malinovsky 2013-10-12 03:53:16

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

15
répondu Lenar Hoyt 2016-05-05 22:35:05

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

Pour l'infini positif (juste pour le plaisir de l'exhaustivité):

math.inf

pour l'infini négatif:

-math.inf
13
répondu Sнаđошƒаӽ 2016-12-09 06:31:50

en python2.x il y avait un piratage sale qui servait ce but (ne L'utilisez jamais à moins qu'il ne soit absolument nécessaire):

None < any integer < any string

ainsi le contrôle i < '' tient True pour tout entier i .

il a été raisonnablement déprécié en python3. Aujourd'hui, de telles comparaisons se terminent par

."
TypeError: unorderable types: str() < int()
12
répondu Antony Hatchkins 2015-07-09 04:45:53

tout d'abord type de flotteur('inf') est flotteur bien qu'il puisse être utilisé à des fins de comparaison, mais il est considérablement lent à comparer avec elle. Donc, si vous comparez une grande liste de nombre contre flottant('inf') alors faites attention à le choisir. Je ne suis pas sûr de la performance de "math.inf".

-3
répondu user2719152 2016-01-01 17:30:55
value = 0x7fffffff

définit la valeur en utilisant le code ci-dessus

-4
répondu seansio1995 2017-07-10 04:25:18