Les types numériques, les variables et les constantes
Contenus de la section
2-1 Variables, constantes et types
a. Entiers et représentation à virgule flottante
2-2 Traitements de données
a. Manipulation de nombres
Temps requis
25 minutes
Les variables
Section 1.1
L'objet de la programmation est la manipulation des données. Pour les manipuler, il faut entre en mesure de les stocker et de leur accéder dans un programme. Pour ce faire, on utilise la construction de variable
du langage Python. Pour déclarer une variable, on doit lui donner un identificateur puis lui affecter une valeur.
Déclarer de variable | |
---|---|
Commentaire
Vous avez sans doute remarqué la ligne précédée du symbole # dans le code précédent. Cela s'appelle un commentaire
. Un commentaire permet d'écrire un texte qui est ignoré par Python. Les commentaires aident la compréhension du code en expliquant son intention. On verra plus en détail plus tard comment rédiger des commentaires utiles et pertinents.
Pour accéder au contenu d'une variable, on indique simplement son identificateur dans une expression. Pour modifier le contenu d'une variable après sa déclaration, on utilise l'opérateur d'affectation (nom fancy pour le symbole =). La syntaxe est la même que pour la déclaration.
Les identificateurs
Un ensemble de règles encadre l'utilisation des identificateurs en Python, soit les règles de syntaxe (qui vont empêcher votre programme de fonctionner) et les conventions de code (qui vont faire faire des gros yeux méchants à vos profs si vous ne les suivez pas).
Règles de syntaxe
Un identificateur :
- est composé seulement de lettres, de chiffres et du symbole d'underscore
_
; - commence par une lettre;
- n'est pas un mot-clé du langage.
Convention du langage
- Les identificateurs ont des noms significatifs (sauf pour les formules mathématiques connues, mais elles devraient être accompagnées d'un commentaire)
- Pour les variables, ils n'utilisent pas de majuscules. S'il y a plusieurs mots, on les sépare par un underscore (ce qui est appelé snake_case)
Sensibilité à la casse
Python est sensible à la casse des lettres, donc "Variable" et "variable" sont deux identificateurs différents.
Les types de données numériques
Section 1.3
Les données numériques dans un système informatique doivent être représentées, ultimement, en langage binaire. Le binaire, est simplement l'utilisation de la base 2 plutôt que la base 10 pour représenter les positions dans un nombre. Par exemple, en base 10 (système décimal), le nombre 423 signifie \(2 \times 10^2 + 2 \times 10^1 + 3 \times 10^0\). On remarque l'utilisation de la base 10 pour représenter les positions. En binaire, il faut parvenir à écrire ce nombre sous la forme \(x_n \times 2^n + x_{n-1} \times 2^{n-1} + ... + x_1 \times 2^1 + x_0 \times 2^0\).
Tout comme le système décimal permet les valeurs de 0 à 9, le système binaire permet les valeurs 0 et 1. Dans l'exemple précédent, 423 en binaire est 1 1010 0111 (on groupe les bits en paquet de quatre pour faciliter la lecture).
En programmant, nous pouvons (fort heureusement) écrire nos nombres dans le système décimal et Python s'occupe de la conversion en binaire pour interagir avec la machine. De plus, nos représentations pour les nombres entiers seront toujours exactes.
Python et les grands nombres
Contrairement à d'autres langages qui ont une limite sur la taille des nombres entiers qu'ils peuvent traiter, Python supporte les nombres entiers arbitrairement grands.
Le cas des nombres à virgule
Section 1.5
La représentation des nombres à virgule pose problème, entre autres, car les nombres avec un nombre infini de décimales ne sont plus les mêmes ! Prenons l'exemple de 0.1, soit en base décimale \(1 \times 10^{-1}\). Il faut maintenant l'écrire sous la forme \(x_1 \times 2^{-1} + x_2 \times 2^{-2} + ... + x_n \times 2^{-n}\). On obtient le nombre sous la forme 0.0001 1001 1001 1001 ... Évidemment, l'ordinateur arrête sa représentation quelque part, ce qui mène à un arrondi et une perte de précision. Donc les nombres à virgule ne peuvent pas être représentés de façon exacte, sous forme numérique dans un programme.
On trouve des conséquences de cette erreur d'arrondie dans le calcul suivant par exemple : 0.1 + 0.1 + 0.1, ce qui en base décimale vaut 0.3, mais affichera 0.30000000000000004 dans le langage Python. Nous verrons comment gérer ces erreurs arithmétiques plus loin.
La virgule ou le point
En français, on utilise la virgule pour séparer la partie décimale de la partie entière dans l'écriture d'un nombre. Cependant, les langages de programmation sont (presque tous) créés en anglais, où le symbole du point sépare la partie entière de la partie décimale. C'est cette convention (l'anglaise) qu'il faut utiliser en écrivant du code.
Opérations mathématiques
Section 1.4
Le langage Python définit 7 opérations arithmétiques. On peut aussi utiliser les parenthèses (
, )
pour assurer la priorité des opérations. Automatiquement, Python applique la priorité des opérations dans l'ordre usuel, puis de gauche à droite.
Opération | Priorité | Opérateur | Exemple d'utilisation |
---|---|---|---|
Addition | 3 | + | 1 + 1 # Résultat : 2 |
Soustraction | 3 | - | 2 - 1 # Résultat : 0 |
Multiplication | 2 | * | -1 * 2 # Résultat : -2 |
Division | 2 | / | 3 / 2 # Résultat : 1.5 |
Division entière | 2 | // | 11 // 3 # Résultat : 3 |
Modulo (reste de la division entière) | 2 | % | 11 % 3 # Résultat : 2 |
Exponentiation | 1 | ** | 2 ** 3 # Résultat : 8 |
Entiers et décimaux
La division entière et le modulo, bien que non défini dans le formalisme mathématique, se comportent comme le prolongement des opérations sur les entiers. Toutefois, n'allez pas faire des modulos sur autre chose que des nombres entiers en mathématiques !
Calculer l'aire d'un triangle | |
---|---|
Mélanger les entiers et les nombres à virgule
Lorsqu'une expression utilise à la fois des nombres entiers et à virgule, Python convertit automatiquement en nombre à virgule tous les termes de l'expression arithmétique. Attention, cela ne change pas les valeurs dans les variables utilisées, seulement la façon dont le calcul est effectué.
Les constantes
Si l'on souhaite représenter une constante (comme PI par exemple), on utilise les lettres majuscules pour la définir. Cela ne change rien à l'exécution du programme, mais permet de signaler qu'il ne faut pas modifier la valeur de cette variable durant l'exécution.
Calculer l'aire d'un disque | |
---|---|
Afficher un résultat
On utilise la fonction print
pour afficher le résultat d'une variable. Nous verrons dans la section sur les chaînes de caractères et sur les entrées et sorties plus de détails sur cette fonction.
Afficher l'aire d'un disque | |
---|---|
Exercices
Page 27 et suivantes
Recommandés : 1.2, 1.3 (la fonction print
affiche le résultat à l'utilisateur, on verra ses détails dans une prochaine section), 1.5, 1.9, 1.12, 1.13, 1.15, 1.19, 1.23
Supplémentaires : 1.4, 1.20
Concepts clés de la section
Déclaration
- opération dans lequelle on indique dans le langage de programmation l'existence d'une certaine structure (variable, fonction...)
Erreur d'arrondi
- Différence entre le système décimal et binaire. Les nombres à virgule représentées en format décimal dans le langage peuvent ne pas toujours prendre la valeur indiquée.
Variable
- Construction du langage qui permet de stocker des informations