Aller au contenu

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
1
2
3
4
5
# Syntaxe pour déclarer une variable
identificateur = <valeur>

# Exemple de déclaration d'une variable
aire_triangle = 12

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
1
2
3
base = 1.2
hauteur = 2.7
aire_triangle = (base * hauteur) / 2.0   # Contient 1.62

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
1
2
3
PI = 3.141592
rayon = 2
aire_disque = PI * rayon**2     # Contient 12.566368

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
1
2
3
4
5
PI = 3.141592
rayon = 2
aire_disque = PI * rayon**2     # Contient 12.566368

print(aire_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