Opérations entre types numériques

On considère ici les types (les classes) ’int’, ’float’ et ’complex’.

Les valeurs de ces types (on dit aussi les instances de ces classes) partagent un certain nombre d’opérations arithmétiques communes (addition, produit, etc.).

Quand on évalue une expression arithmétique contenant des valeurs numériques, on peut considérer la classe ’int’ comme incluse dans la classe ’float’, elle-même incluse dans la classe ’complex’ (il serait plus exact de parler d’injections canoniques de ’int’ vers ’float’, et de ’float’ vers ’complex’).

Lors de l’évaluation d’une telle expression, le calcul s’effectue dans la classe la plus étroite qui soit compatible avec tous les arguments, et c’est dans cette classe qu’est renvoyé le résultat (c’est pour cette raison, par exemple, que la somme de l’entier 2 et du flottant 3.0 est le flottant 5.0).

Voici les principales opérations sur les types numériques :

x + y x - y x * y x / y somme, différence, produit, quotient
pow(x, y) x ** y calcule x à la puissance y. Par défaut {0^0=1}
x // y x % y quotient et reste dans une division euclidienne entre entiers
divmod(x, y) renvoie la paire ( x // y, x % y )
abs(x) valeur absolue, module
int(x) float(x) conversion vers le type ’int’, ou vers le type ’float’
round(x) round(x,n) arrondit à l’entier le plus proche, ou valeur approchée à {10^{-n}} près
z.real z.imag z.conjugate() partie réelle, partie imaginaire, conjugué
complex(x, y) x + y * 1j renvoie le nombre complexe x + iy

NB : une source d’erreur classique concerne les divisions par / ou // (c’est une différence entre Python 2 et Python 3).

Avec Python 3, l’opérateur // fournit le quotient entier dans la division euclidienne.

NB : dans la division (dite entière) par // et %, le quotient et le reste dans la division de x par y sont respectivement l’entier q et le réel r tels que : x = qy + r, avec 0 ≤ r < y si y > 0, et y < r ≤ 0 si y < 0. Si l’un au moins de x ou y est un flottant, alors q et r sont des flottants (bien que le flottant q ait une valeur entière…)

Retour à l’accueil du cours Python/Numpy

Sommaire du chapitre 2

  1. Quelques types (classes) de base
  2. Opérations entre types numériques
  3. Les opérateurs avec assignation
  4. Les fonctions mathématiques du module math
  5. Le module cmath
  6. Arithmétique des entiers
  7. Valeurs booléennes et comparaisons
  8. Égalité structurelle et égalité physique