Passer au contenu principal
eLearner.app
Module 4 · Leçon 3 sur 415/36 dans le cours~10 min
Leçons du module (3/4)

Nombres et module math

Python distingue deux types numériques fondamentaux : int (entiers de précision arbitraires — pas de dépassement) et float (nombre à virgule flottante 64 bits, double précision).

Python
type(42)       # <class 'int'>
type(3.14)     # <class 'float'>
type(10 ** 100)  # <class 'int'>   — interi grandi a piacere

Opérateurs arithmétiques

OpSignplicationExempleRésultat
+addition2 + 35
-soustraction5 - 23
*produit4 * 312
/division réelle10 / 42.5
//division entière10 // 42
%modulo (reste)10 % 31
**puissance2 ** 101024

Attention : / renvoie toujours un float, même avec deux entiers (10 / 2 renvoie 5.0, pas 5). Pour la division entière, utilisez //.

Python
10 / 4    # 2.5
10 // 4   # 2
-7 // 2   # -4   (arrotonda verso il basso, non verso lo zero)

Fonctions numériques intégrées

Python
abs(-5)               # 5
min(3, 1, 2)          # 1
max([3, 1, 2])        # 3   (su iterabile)
round(3.7)            # 4
round(3.14159, 2)     # 3.14
sum([1, 2, 3])        # 6

Le module math

Python
import math
math.pi               # 3.141592653589793
math.sqrt(16)         # 4.0
math.floor(3.9)       # 3   (verso meno infinito)
math.ceil(3.1)        # 4   (verso più infinito)
math.log(math.e)      # 1.0
math.gcd(12, 18)      # 6

Le piège du float

Les floats sont des approximations binaires : 0.1 + 0.2 n'est pas exactement égal à 0.3.

Python
0.1 + 0.2           # 0.30000000000000004
0.1 + 0.2 == 0.3    # False !

Pour des comparaisons sûres, utilisez math.isclose(a, b) ou, dans des contextes financiers, le module decimal.

Précision du float et module decimal

Les floats en Python sont implémentés comme des nombres à virgule flottante double précision (norme IEEE 754). Par conséquent, des calculs comme 0.1 + 0.2 ne donnent pas exactement 0.3, mais plutôt 0.30000000000000004. Si vous avez besoin d'une précision mathématique absolue (par exemple pour des applications financières), utilisez le module decimal de la bibliothèque standard.

À vous de jouer

Exercice#python.m4.l3.e1
Tentatives : 0Chargement…

Étant donné `seconds = 3725`, calculez `hours`, `minutes`, `remaining_seconds` en utilisant // et %. Évaluez le tuple `(hours, minutes, remaining_seconds)`.

Chargement de l'éditeur…
Afficher l'indice

// fait la division entière, % donne le reste.

Solution disponible après 3 tentatives

Exercice de révision

Exercice#python.m4.l3.e2
Tentatives : 0Chargement…

Étant donné `radius = 5`, calculez l'aire du cercle dans `area` en utilisant math.pi. Évaluez `area` arrondie à 2 décimales avec round.

Chargement de l'éditeur…
Afficher l'indice

math.pi * radius ** 2

Solution disponible après 3 tentatives

Défi supplémentaire

Exercice#python.m4.l3.e3
Tentatives : 0Chargement…

Importez le module `math`. Calculez la racine carrée de `16` à l'aide de `math.sqrt`, ajoutez le résultat à la valeur arrondie de `3.74` (en utilisant `round()`), et stockez la somme finale dans `total_val`. Enfin, évaluez la variable.

Chargement de l'éditeur…
Afficher l'indice

math.sqrt(16) renvoie 4.0. round(3.74) renvoie 4. Additionnez-les et assignez le résultat à total_val.

Solution disponible après 3 tentatives