webentwicklung-frage-antwort-db.com.de

Wie kann ich in Python eine unendliche Zahl darstellen?

Wie kann ich in Python eine unendliche Zahl darstellen? Unabhängig davon, welche Zahl Sie in das Programm eingeben, sollte keine Zahl größer sein als diese Darstellung der Unendlichkeit.

486
ssierral

In Python können Sie Folgendes tun:

test = float("inf")

In Python 3.5 können Sie Folgendes tun:

import math
test = math.inf

Und dann:

test > 1
test > 10000
test > x

Wird immer wahr sein. Es sei denn natürlich, wie bereits erwähnt, ist x auch unendlich oder "nan" ("keine Zahl").

Zusätzlich (NUR Python 2.x) ist im Vergleich zu Ellipsisfloat(inf) geringer, z.

float('inf') < Ellipsis

würde wahr zurückkehren.

602
WilHall

Seit Python 3.5 können Sie math.inf verwenden:

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

Ich weiß nicht genau, was Sie tun, aber float("inf") gibt Ihnen eine Float-Unendlichkeit, die größer als jede andere Zahl ist.

30
Ned Batchelder

Niemand scheint ausdrücklich von der negativen Unendlichkeit gesprochen zu haben, daher denke ich, ich sollte sie hinzufügen.

Für positive Unendlichkeit (nur der Vollständigkeit halber):

math.inf

Für negative Unendlichkeit:

-math.inf
25

Eine andere, weniger bequeme Methode ist die Verwendung von Decimal class:

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

In der NumPy-Bibliothek gibt es eine Unendlichkeit: from numpy import inf. Um eine negative Unendlichkeit zu erhalten, kann man einfach -inf schreiben.

22
Lenar Hoyt

In python2.x gab es einen schmutzigen Hack, der diesem Zweck diente (verwenden Sie ihn NIE, es sei denn, dies ist absolut notwendig):

None < any integer < any string

Somit enthält die Prüfung i < ''True für eine beliebige ganze Zahl i.

Es wurde in python3 einigermaßen veraltet. Nun enden solche Vergleiche mit

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

Auch wenn Sie sympy verwenden, können Sie sympy.oo verwenden

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

usw.

0
Victor