Fiche récapitulative générée pour impression / export PDF.
Licence 1 · Informatique L1 — Introduction à Python pour les mathématiques
Variables, types et structures de contrôle
Variables, types et structures de contrôle
### 1. Variables et affectation
En Python, une variable est un nom associé à une valeur, créée par l'opérateur d'affectation = :
> x = 5
> nom = "Alice"
> pi_approx = 3.14
Contrairement à certains langages, Python n'exige pas de déclarer le type d'une variable à l'avance : le type est déduit automatiquement de la valeur affectée (typage dynamique).
### 2. Types de base
| Type | Nom Python | Exemple |
|---|---|---|
| Entier | int | x = 5 |
| Flottant (décimal) | float | y = 3.14 |
| Booléen | bool | b = True ou b = False |
| Chaîne de caractères | str | s = "bonjour" |
La fonction type(x) renvoie le type de la variable x. On peut convertir entre types avec int(...), float(...), str(...) (ex : int("5") donne l'entier 5).
Opérateurs arithmétiques : +, -, , / (division réelle), // (division entière, quotient), % (modulo, reste de la division euclidienne), * (puissance).
> 7 // 2 donne 3
> 7 % 2 donne 1
> 2 ** 10 donne 1024
### 3. Opérateurs de comparaison et booléens
Les opérateurs de comparaison renvoient un booléen : == (égalité), != (différence), <, >, <=, >=. Les opérateurs logiques combinent des booléens : and, or, not.
> (3 < 5) and (7 > 2) donne True
> not (3 == 3) donne False
### 4. Structure conditionnelle if / elif / else
La structure conditionnelle exécute un bloc de code selon qu'une condition est vraie ou fausse :
> if condition1:
> instruction A
> elif condition2:
> instruction B
> else:
> instruction C
En Python, l'indentation (généralement 4 espaces) délimite les blocs de code — il n'y a pas d'accolades ni de mot-clé end.
Exemple résolu : déterminer le signe d'un nombre n.
> if n > 0:
> print("positif")
> elif n < 0:
> print("négatif")
> else:
> print("nul")
### 5. Boucle for
La boucle for répète un bloc pour chaque élément d'une séquence, souvent générée par range(...) :
> for i in range(5):
> print(i)
affiche 0, 1, 2, 3, 4 (range(5) génère les entiers de à inclus, soit valeurs, en excluant la borne supérieure). range(a, b) génère les entiers de à ; range(a, b, pas) ajoute un pas.
### 6. Boucle while
La boucle while répète un bloc tant qu'une condition reste vraie :
> n = 10
> while n > 0:
> n = n - 1
Contrairement à for (nombre d'itérations souvent connu à l'avance), while convient quand le nombre de répétitions dépend d'une condition évaluée dynamiquement. Attention : une condition toujours vraie produit une boucle infinie.
Exemple résolu : calculer la somme des entiers de à avec une boucle while.
> n = 10
> s = 0
> i = 1
> while i <= n:
> s = s + i
> i = i + 1
> print(s)
Ce programme affiche , conformément à la formule de la somme arithmétique.
### 7. Résumé méthodologique
| Outil | Usage |
|---|---|
| if / elif / else | exécuter un bloc selon une condition |
| for ... in range(...) | répéter un nombre connu de fois |
| while condition: | répéter tant que la condition est vraie (nombre inconnu a priori) |
Exercices de la leçon
Exercice 1
Quel est le type de la valeur produite par 5 / 2 en Python ?
Corrigé
En Python 3, l'opérateur / effectue toujours une division réelle et renvoie un float, même si le résultat est un entier exact. 5/2 donne 2.5. Pour obtenir le quotient entier, on utilise //.
Exercice 2
Que vaut 17 % 5 ?
Corrigé
% calcule le reste de la division euclidienne : , donc 17 % 5 vaut .
Exercice 3
Vrai ou faux : en Python, l'indentation du code est purement esthétique et n'a aucun effet sur l'exécution.
Corrigé
Faux. En Python, l'indentation délimite syntaxiquement les blocs de code (corps d'un if, d'une boucle, d'une fonction). Une indentation incorrecte provoque une erreur ou change le comportement du programme.
Exercice 4
Combien de valeurs génère range(3, 8) ?
Corrigé
range(a, b) génère les entiers de inclus à exclu. Ici, : soit valeurs.
Exercice 5
Quelle structure utiliser pour répéter un bloc tant qu'une condition reste vraie, sans connaître à l'avance le nombre d'itérations ?
Corrigé
La boucle while est adaptée quand le nombre de répétitions dépend d'une condition dynamique, contrairement à for qui itère sur une séquence de taille généralement connue.
Exercice 6
Quelle est la sortie du code suivant ?
n = -3
if n > 0:
print("positif")
elif n < 0:
print("négatif")
else:
print("nul")
Corrigé
Comme , la première condition n > 0 est fausse, la deuxième n < 0 est vraie : le programme affiche négatif.
Exercice 7
Vrai ou faux : l'expression (3 < 5) and (2 > 7) s'évalue à True.
Corrigé
Faux. 3 < 5 est True, mais 2 > 7 est False. L'opérateur and exige que les deux conditions soient vraies, donc le résultat global est False.
Exercice 8
Quelle est la valeur finale de s après ce code ?
s = 0
for i in range(1, 5):
s = s + i
Corrigé
range(1,5) génère . La somme accumulée est .
Exercice 9
Que produit int("7") + 3 ?
Corrigé
int("7") convertit la chaîne "7" en entier . Puis , un entier.
Exercice 10
Écrire (en pseudo-code Python) une boucle while qui affiche les puissances de inférieures à (c'est-à-dire jusqu'à la dernière strictement inférieure à ).
Corrigé
Une solution possible :
p = 1
while p < 100:
print(p)
p = p * 2
Ce code affiche : dès que p atteint ou dépasse (ici ), la condition devient fausse et la boucle s'arrête.
Exercice 11
Quelle est la sortie de ce code ?
total = 0
i = 1
while i <= 5:
if i % 2 == 0:
total = total + i
i = i + 1
print(total)
Corrigé
On parcourt et on additionne seulement les valeurs paires : . total vaut donc à la fin.
Exercice 12
Vrai ou faux : le code suivant produit une boucle infinie.
n = 5
while n != 0:
n = n - 2
Corrigé
Vrai. La suite des valeurs de n est : elle décroît de en à partir d'un nombre impair, donc ne passe jamais exactement par . La condition n != 0 reste indéfiniment vraie : boucle infinie.
Exercice 13
Combien de fois le mot print est-il exécuté dans le code suivant ?
for i in range(3):
for j in range(4):
print(i, j)
Corrigé
La boucle externe s'exécute fois (), et pour chaque valeur de , la boucle interne s'exécute fois (). Total : exécutions de print.
Exercice 14
Écrire un morceau de code Python qui compte le nombre d'entiers entre et (inclus) divisibles par .
Corrigé
Une solution possible :
compteur = 0
for i in range(1, n+1):
if i % 3 == 0:
compteur = compteur + 1
On parcourt tous les entiers de à avec range(1, n+1) (la borne exclue rend inclus), et on incrémente compteur chaque fois que le reste de la division par est nul.
Exercice 15
Que vaut total après l'exécution de ce code, et pourquoi le résultat surprend-il souvent les débutants ?
total = 0
for i in range(5):
if i == 3:
break
total = total + i
Corrigé
L'instruction break interrompt immédiatement la boucle dès que sa condition est vérifiée, avant d'exécuter le reste du corps de boucle pour cette itération. Donc pour , on ajoute à total (total successif ). Quand , le test i==3 est vrai : break est exécuté immédiatement, sans exécuter total = total + i pour . Le résultat final est . C'est une source d'erreur fréquente : on oublie que break agit avant le reste du bloc.
AlphaMath Académie · Variables, types et structures de contrôle · Informatique L1 — Introduction à Python pour les mathématiques