Variables et affectation
Variable informatique
Une variable est un nom auquel on associe une valeur. L'opération qui lui donne une valeur s'appelle une affectation , et se note en Python avec le signe \(=\).
n = 7 prix = 12.5 nom = "Ada" majeur = True
Le signe \(=\) n'a donc pas le sens mathématique d'une égalité : il indique une action , celle de ranger une valeur dans une variable. L'instruction \(n = n + 1\) est parfaitement licite, et augmente \(n\) de \(1\).
Types de variables
Type |
Nom en Python |
Exemple |
|---|---|---|
Entier |
int |
\(7\) |
Flottant (nombre à virgule) |
float |
\(12{,}5\) |
Chaîne de caractères |
str |
"Ada" |
Booléen |
bool |
True ou False |
Un flottant n'est qu'une valeur approchée : deux calculs mathématiquement égaux peuvent donner deux flottants différents.
Instruction conditionnelle
Une instruction conditionnelle n'exécute un bloc que si une condition est vraie. Le bloc concerné est repéré par l'indentation , c'est-à-dire par le décalage vers la droite.
if n % 2 == 0:
print("n est pair")
else:
print("n est impair")
L'opérateur % donne le reste de la division euclidienne, et == teste l'égalité — à ne pas confondre avec l'affectation \(=\).
Boucles
Boucle bornée
Une boucle bornée répète un bloc un nombre de fois connu à l'avance . En Python, elle s'écrit avec for.
Le programme suivant calcule la somme des entiers de \(1\) à \(100\) :
somme = 0
for k in range(1, 101):
somme = somme + k
print(somme)
range(1, 101) parcourt les entiers de \(1\) à \(100\) : la borne de droite est exclue.
Boucle non bornée
Une boucle non bornée répète un bloc tant qu'une condition reste vraie. Le nombre de tours n'est pas connu à l'avance. En Python, elle s'écrit avec while.
Le programme suivant cherche la première puissance de \(2\) qui dépasse \(1\,000\) :
p = 1
n = 0
while p <= 1000:
p = p * 2
n = n + 1
print(n, p)
Une boucle non bornée doit faire progresser la condition à chaque tour, faute de quoi le programme ne s'arrête jamais.
Fonctions
Fonction en programmation
Une fonction est un bloc d'instructions nommé, qui reçoit des paramètres et renvoie un résultat. On l'écrit une fois, on l'appelle autant de fois qu'on veut.
def est_multiple(a, b):
return a % b == 0
print(est_multiple(35, 7))
L'instruction return renvoie une valeur à l'appelant et met fin à la fonction. Une fonction sans return ne renvoie rien : elle se contente d'agir, par exemple d'afficher.
Deux algorithmes du programme
Plus grand multiple inférieur à une borne
Pour deux entiers naturels \(a\) et \(b\), on cherche le plus grand multiple de \(a\) inférieur ou égal à \(b\) :
def plus_grand_multiple(a, b):
m = 0
while m + a <= b:
m = m + a
return m
Encadrement de \(\sqrt{2}\) par balayage
Le balayage consiste à avancer par pas réguliers jusqu'à dépasser la valeur cherchée. Ici le pas vaut \(10^{-n}\) :
def encadrer_racine_de_2(n):
pas = 10 ** (-n)
x = 1
while x * x <= 2:
x = x + pas
return x - pas, x
La fonction renvoie deux nombres décimaux dont l'écart vaut \(10^{-n}\), et qui encadrent \(\sqrt{2}\). Avec \(n = 2\), elle donne \(1{,}41\) et \(1{,}42\).