Wie tippe ich ein Gleitkomma-Unendlichkeitsliteral in Python?
ich habe gehört
inf = float('inf')
ist nicht tragbar. Daher habe ich folgendes empfohlen:
inf = 1e400
Ist einer dieser Standard oder tragbar? Was ist die beste Vorgehensweise?
float('inf')
sollteValueError
auf diesen Plattformen angehoben werden, aber meines Wissens wurde dieses Verhalten nie getestet, da Python (zumindest neuere Versionen von Python) eine solche Plattform noch nicht erfüllt hat. In der Praxis mach dir keine Sorgen.float('inf')
ist nicht portierbar wie in nicht portierbar zurück zu Python 2.5, wenn die String-Ausgabe zwischen den Plattformen variiert. Ab 2.6float('inf')
funktioniert es garantiert auf IEEE-754-Compliance-Plattformen (siehe: http://www.python.org/dev/peps/pep-0754/ ).(Und die Empfehlung scheint im Bereich von 1e30000 zu liegen, nicht nur von 1e400.)
quelle
Vielleicht könnten Sie so etwas tun
try: inf = float('inf') except: # check for a particular exception here? inf = 1e30000
quelle
float('inf')
ist definitiv im Allgemeinen zu bevorzugen. Es ist sogar möglich, dass 'inf = 1e30000`OverflowError
in einer zukünftigen Version von Python anfängt zu erhöhen, anstatt eine Unendlichkeit zu erzeugen.