Python i nieskończoność - czy macie jakieś zastrzeżenia?

Python ma więc dodatnią i ujemną nieskończoność:

float("inf"), float("-inf")

To wydaje się być rodzaj funkcji, która musi mieć pewne zastrzeżenie. Czy jest coś, o czym powiniennam wiedzieć?

1 odpowiedź

Nadal można uzyskać wartości inne niż liczba (NaN) z prostej arytmetyki obejmującej inf:

>>> 0 * float("inf")
nan

Zauważ, że zwykle nie otrzymasz wartości inf poprzez zwykłe obliczenia arytmetyczne:

>>> 2.0**2
4.0
>>> _**2
16.0
>>> _**2
256.0
>>> _**2
65536.0
>>> _**2
4294967296.0
>>> _**2
1.8446744073709552e+19
>>> _**2
3.4028236692093846e+38
>>> _**2
1.157920892373162e+77
>>> _**2
1.3407807929942597e+154
>>> _**2
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
OverflowError: (34, 'Numerical result out of range')

Wartość inf jest uważana za bardzo specjalną wartość z nietypową semantyką, dlatego lepiej jest natychmiast dowiedzieć się o OverflowError poprzez wyjątek, a nie podawać wartości inf po cichu do obliczeń.

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.