Python a donc infini positif et négatif :
Cela semble juste comme le type d’entité qui doit avoir une mise en garde. Est-ce là tout ce que je devrais être au courant des ?
Python a donc infini positif et négatif :
Cela semble juste comme le type d’entité qui doit avoir une mise en garde. Est-ce là tout ce que je devrais être au courant des ?
Python est mise en œuvre suit la norme IEEE-754 assez bien, que vous pouvez utiliser comme un guide. Récemment, un correctif a été appliqué qui permet à "l'infini" et "inf", mais c'est de peu d'importance ici.
Lorsque vous traitez avec l'infini et plus-que >
ou moins de <
opérateurs, le compte suivant:
-inf
et+inf
Comparativement à l'égalité, +inf
et +inf
sont égaux, comme le sont -inf
et -inf
. C'est beaucoup débattu de la question et peut sembler évident, mais il est dans la norme IEEE et Python se comporte juste comme ça.
Tout calcul avec l'infini les rendements de l'infini, sauf lorsque le résultat serait indéfini (comme avec multiplié par zéro, voir un autre exemple dans ce fil), ce qui donne NaN
, et en divisant un nombre quelconque (à l'exception de l'infini lui-même) à l'infini, ce qui donne 0.0
.
Vous pouvez toujours obtenir pas un nombre (NaN) les valeurs de la simple arithmétique impliquant inf
:
>>> 0 * float("inf")
nan
Notez que vous ne sera normalement pas obtenir un inf
de la valeur grâce à l'habitude des calculs arithmétiques:
>>> 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')
L' inf
de la valeur est considérée comme une valeur spéciale avec une rare sémantique, il est donc préférable de connaître un OverflowError
tout de suite par une exception, plutôt que d'avoir un inf
de la valeur silencieusement injecté dans vos calculs.
Donc ne C99.
La norme IEEE 754 représentation à virgule flottante utilisée par tous les processeurs modernes a plusieurs modèles de bits réservés à l'infini positif (signe=0, exp=~0, frac=0), l'infini négatif (le signe=1, exp=~0, frac=0), et de nombreux NaN (Pas un Nombre: exp=~0, frac≠0).
Tout ce que vous devez craindre: arithmétique peut causer des exceptions de virgule flottante/pièges, mais ceux-là ne sont pas limités à ces "intéressant" constantes.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.