Python >> Tutoriel Python >  >> Python

Python Infini

Résumé : Python Infinity est une valeur indéfinie (négative ou positive) telle que l'infini positif est supérieur à tandis que l'infini négatif est inférieur à toute autre valeur dans un code donné. Les nombreuses façons d'utiliser Python infinity sont :

  • En utilisant float('Inf') et float('-Inf')
  • Utiliser le math module.
  • Utiliser le decimal module.
  • Utilisation de la bibliothèque "Numpy".
  • Utilisation du module Infinity.

Exercice :Essayez de trouver un nombre supérieur à l'infini ! 😉

Aperçu

Infini est un terme dérivé du mot latin « infinitas » qui signifie « sans fin » ou « illimité ». De même, l'infini en Python est une valeur indéfinie qui peut être positive ou négative.

☞ Voici une règle générale concernant Python Infinity :

Positive Infinity > Toute autre valeur dans un code python > Infini négatif

Jusqu'à présent, il n'y avait aucun moyen de représenter l'infini sous la forme d'un nombre entier. Cependant, vous voudrez peut-être jeter un œil aux façons dont une valeur entière peut être rendue supérieure à toute autre valeur dans ce tutoriel de blog.

Explorons comment Infinity peut être utilisé en Python :

Méthode 1 :Utiliser float(‘Inf’) et float(‘-Inf’)

L'infini peut être une valeur positive ou négative, comme nous l'avons mentionné dans notre règle empirique.

  1. float('Inf') est utilisé pour représenter l'infini positif.
  2. float('-Inf') est utilisé pour représenter l'infini négatif.

Le code suivant illustre l'implémentation de l'infini positif et négatif :

infinity_positive = float('Inf')
number = 9999999999999999999999999
if number > infinity_positive:
          print("number is greater than Infinity!")
else:
          print("Positive Infinity is the greatest! Even greater than",number)
    infinity_negative = float('-Inf')
  if -number < infinity_negative:
            print("number is lesser than Negative Infinity!")
  else:
            print("Negative Infinity is the least! Even smaller than",-number)

Sortie :

Positive Infinity is the greatest! Even greater than 9999999999999999999999999                                            
Negative Infinity is the least! Even smaller than -9999999999999999999999999

Méthode 2 :Utilisation du module de mathématiques Python

Le module mathématique de Python peut également être utilisé pour implémenter l'infini dans Python 3.5 et supérieur.

  1. math.inf est une constante prédéfinie en Python qui renvoie l'infini positif.
  2. -math.inf est une constante prédéfinie en Python qui renvoie l'infini négatif.

Le code suivant illustre l'implémentation de l'infini à l'aide du module math :

import math
infinity_positive = math.inf
number = 9999999999999999999999999
# Positive Infinity
if number > infinity_positive:
    print("number is greater than Infinity!")
else:
    print("Positive Infinity is the greatest! Even greater than",number)
# Negative Infinity
infinity_negative = -math.inf
if -number < infinity_negative:
    print("number is lesser than Negative Infinity!")
else:
    print("Negative Infinity is the least! Even smaller than",-number)

Sortie :

Positive Infinity is the greatest! Even greater than 9999999999999999999999999                                            
Negative Infinity is the least! Even smaller than -9999999999999999999999999

Méthode 3 :Utilisation du module décimal

Une autre façon d'implémenter l'infini consiste à utiliser le module décimal de Python qui nous aide à gérer l'arithmétique à virgule fixe et flottante en Python.

  1. Decimal(‘Infinity’) renvoie l'infini positif.
  2. Decimal(‘-Infinity’) renvoie l'infini négatif.

Le code suivant illustre l'implémentation de l'infini en utilisant le math module :

from decimal import Decimal
infinity_positive = Decimal('Infinity')
number = 9999999999999999999999999

# Positive Infinity
if number > infinity_positive:
    print("number is greater than Infinity!")
else:
    print("Positive Infinity is the greatest! Even greater than",number)

# Negative Infinity
infinity_negative = Decimal('-Infinity')
if -number < infinity_negative:
    print("number is lesser than Negative Infinity!")
else:
    print("Negative Infinity is the least! Even smaller than",-number)

Sortie :

Positive Infinity is the greatest! Even greater than 9999999999999999999999999                                            
Negative Infinity is the least! Even smaller than -9999999999999999999999999

Méthode 4 :Utilisation de la bibliothèque "Numpy"

Une autre façon populaire d'implémenter Infinity en Python consiste à utiliser la bibliothèque Numpy de Python. Numpy a ses propres définitions pour les valeurs infinies.

  1. np.inf renvoie l'infini positif.
  2. -np.inf renvoie l'infini négatif.

Le code suivant illustre l'implémentation de l'infini à l'aide du module math :

import numpy as np
infinity_positive = np.inf
number = 9999999999999999999999999
# Positive Infinity
if number > infinity_positive:
    print("number is greater than Infinity!")
else:
    print("Positive Infinity is the greatest! Even greater than",number)
# Negative Infinity
infinity_negative = -np.inf
if -number < infinity_negative:
    print("number is lesser than Negative Infinity!")
else:
    print("Negative Infinity is the least! Even smaller than",-number)

Sortie :

Positive Infinity is the greatest! Even greater than 9999999999999999999999999                                            
Negative Infinity is the least! Even smaller than -9999999999999999999999999

Méthode 5 :Utilisation du module Infinity

Le module de valeur infini tout-en-un conçu par Konsta Vesterinen peut être comparé à n'importe quel objet. Cela signifie qu'il surmonte les limites de pouvoir comparer uniquement les valeurs flottantes. Lorsque nous essayons de calculer pow(1, float('inf')) renvoie 1. Franchement, cela ne devrait pas être le cas, car il devrait être indéfini. Lorsque vous utilisez le module infinity, il renvoie un type error dans ce cas au lieu de renvoyer 1 qui est plus acceptable et réaliste.

Puisque l'infini ne fait pas partie de la bibliothèque standard de Python. Donc, avant de l'utiliser, vous devez l'installer en utilisant la commande suivante :

pip install infinity

Examinons le code suivant pour comprendre le fonctionnement de la classe Infinity :

from infinity import inf

number = 9999999999999999999999999

# Positive Infinity
if number > inf:
    print("number is greater than Infinity!")
else:
    print("Positive Infinity is the greatest! Even greater than",number)

# Negative Infinity
infinity_negative = -inf
if -number < infinity_negative:
    print("number is lesser than Negative Infinity!")
else:
    print("Negative Infinity is the least! Even smaller than",-number)

Sortie

Positive Infinity is the greatest! Even greater than 9999999999999999999999999
Negative Infinity is the least! Even smaller than -9999999999999999999999999

Après avoir appris de nombreuses façons d'implémenter l'infini en python, examinons quelques opérations pouvant être effectuées en utilisant l'infini en python.

Arithmétique de l'infini

Généralement, la plupart des opérations arithmétiques effectuées sur des valeurs infinies entraînent la génération d'autres valeurs infinies. L'exemple suivant illustre ce concept :

value = float('inf')
print('Result of Addition : ',value + 15)
print('Result of Subtraction : ',value - 15)
print('Result of Multiplication : ',value * 15)
print('Result of Division : ',value / 15)
#special scenario
print('Multiplication by Zero: ',value * 0)

Sortie :

Result of Addition:  inf
Result of Subtraction:  inf
Result of Multiplication:  inf
Result of Division:  inf
Multiplication by Zero:  nan

Remarque :

  • La division par zéro élève un ZeroDivisionError exception au lieu de donner une valeur résultante.
  • Opérations arithmétiques sur NaN donnez toujours NaN . Il n'y a pas de "NaN négatif".

Vérification Python Infinity

Le isinf() La méthode du module math est utilisée pour vérifier les valeurs infinies en Python. L'exemple suivant illustre ce concept :

import numpy as np
import math
num1 = np.inf
num2 = -np.inf
num3 = 25
print("Is num1 an infinite number?: ",math.isinf(num1))
print("Is num3 an infinite number?: ",math.isinf(num2))
print("Is num2 an infinite number?: ",math.isinf(num3)) 

Créer des tableaux avec des valeurs infinies

L'exemple suivant montre comment créer un tableau de valeurs infinies :

import numpy as np
# To create a numpy array with all values initialized to infinity
array_infinity = np.full(5, np.inf)
print('Infinite Array: ',array_infinity) 

Sortie :

Infinite Array:  [ inf  inf  inf  inf  inf]

Testez vos connaissances sur la base des explications ci-dessus :

Quel sera le résultat de l'extrait suivant ?

import math

a=float('-infinity')
b=float('inf')
print(a)
print(b)
print(math.inf)
print(-math.inf)

Réponses : Exécutez le code pour obtenir les réponses !

Pourquoi utiliser Python Infinity ?

L'infini est principalement utilisé dans les conceptions algorithmiques complexes et les problèmes d'optimisation. Un tel exemple est l'algorithme du plus court chemin où les valeurs de distance actuelles doivent être comparées avec les meilleures ou les plus petites valeurs de distance. Il est extrêmement utile dans les scénarios de comparaison où il agit comme une valeur supérieure ou inférieure illimitée.

Examinons un programme simple qui trouve le chemin le moins cher à partir d'une liste d'options données :

least_path_cost = float('inf')
# Assume that these values were calculated using some xyz algorithm
path_cost = [10, 100, 99999999999, 50]
for path in path_cost:
    if path < least_path_cost:
        least_path_cost = path
print("The Lowest Path is", least_path_cost)

Sortie

The Lowest Path is 10

Si nous n'avions pas l'infini positif, c'est-à-dire float(inf) à notre disposition, nous n'aurions pas connu la valeur initiale low_path_cost dans le code. On voit donc l'importance de infinity en python.

Conclusion

Dans cet article, nous avons couvert de nombreuses façons de traiter Python Infinity et j'espère que vous avez trouvé cet article utile et qu'il vous aidera à démarrer avec les principes fondamentaux de Python Infinity !

Veuillez vous abonner et rester à l'écoute pour des articles plus intéressants à l'avenir.


Prochain article