Algorithmique et programmation Python
Variables, fonctions, conditions, boucles et listes en Python — programme de Première.
Partie 1 — Les bases de Python
Variables et affectation
Une variable stocke une valeur en mémoire. L’affectation se fait avec =.
a = 4
b = 7
c = a + b**5
print(c)
Python affiche en sortie : 16811. En effet, .
Opérations de base :
| Opération | Python | Exemple |
|---|---|---|
| Addition | a + b | 3 + 4 → 7 |
| Soustraction | a - b | 10 - 3 → 7 |
| Multiplication | a * b | 3 * 4 → 12 |
| Puissance | a**n | 2**5 → 32 |
| Division | a / b | 7 / 2 → 3.5 |
| Quotient entier | a // b | 7 // 2 → 3 |
| Reste (modulo) | a % b | 7 % 2 → 1 |
Exemple —
a = 3,b = 4,c = a**3 + b. Alors .
Partie 2 — Utiliser les fonctions
Une fonction reçoit des paramètres en entrée et renvoie un résultat avec return.
from math import *
def aire(rayon):
A = pi * rayon**2
return(A)
En exécutant aire(12), Python affiche : 452.389… car .
Importer des fonctions mathématiques :
from math import * donne accès à pi, sqrt (racine carrée), cos, sin, etc.
from math import *
a = 5
b = 9
c = a**2 + b**2
c = sqrt(c)
print(c)
Ce programme calcule l’hypoténuse d’un triangle rectangle de côtés 5 et 9 : .
Exemple —
def f(x): return(x**2 + 2). En saisissantf(5), on obtient .
Partie 3 — L’instruction conditionnelle (Si… alors…)
if / elif / else
from random import *
def jeu():
dé = randint(1, 6)
if dé > 4:
a = 'gagné'
else:
a = 'perdu'
return(dé, a)
randint(1, 6): nombre aléatoire entier de 1 à 6.if condition:→ s’exécute si la condition est vraie.else:→ s’exécute sinon.
Avec elif (sinon si) :
def note(x):
if 15 < x <= 20:
remarque = 'super'
elif 10 <= x <= 15:
remarque = 'ca va'
else:
remarque = 'ouaip'
return(remarque)
Opérateurs de comparaison : == (égal), != (différent), <, >, <=, >=
Exemple —
def div(n): if n%3==0: N=n/3 else: N=0 return(N). Pourdiv(24), , donc N vaut 8. Pourdiv(41), 41 n’est pas divisible par 3, donc N vaut 0.
Partie 4 — Utiliser les boucles
La boucle « Pour » (for)
La boucle for répète des instructions un nombre déterminé de fois.
def som():
s = 0
for k in range(1, 6):
s = s + k
return(s)
range(1, 6) signifie que prend les valeurs 1, 2, 3, 4, 5 (début inclus, fin exclue).
| 1 | 2 | 3 | 4 | 5 | ||
|---|---|---|---|---|---|---|
| 0 | 1 | 3 | 6 | 10 | 15 |
Python affiche : 15. En effet, .
La boucle « Tant que » (while)
La boucle while s’exécute tant que la condition est vraie.
def som():
s = 0
k = 1
while s < 10000:
s = s + k
k = k + 1
return(k - 1)
Ce programme cherche à partir de quel entier la somme dépasse 10 000. Résultat : 141.
Exemple — Le programme suivant calcule le produit des 9 premiers entiers () :
def prod(): p = 1 for k in range(1, 10): p = p * k return(p)Attention : il faut initialiser
p = 1(pasp = 0, sinon le produit reste à 0). Résultat : .
Partie 5 — Les listes
Listes par ajouts successifs
L1 = [10]
for i in range(11, 101):
L1 = L1 + [i]
print(L1)
Ce programme crée la liste des entiers de 10 à 100. On peut aussi utiliser L1.append(i).
len(L): nombre d’éléments de la liste.L[0]: premier élément (l’indexation commence à 0).L.append(x): ajoute à la fin de .
Listes en compréhension
L2 = [x**2 for x in range(1, 21)]
print(L2)
Crée la liste des carrés des entiers de 1 à 20 : [1, 4, 9, 16, 25, …, 400].
Avec condition :
L = [x for x in range(0, 101) if x % 7 == 0]
Liste des multiples de 7 entre 0 et 100.
Exemple —
L = [2*x+1 for x in range(5, 10)]donne[11, 13, 15, 17, 19].
Algorithmes en langage naturel
Les algorithmes peuvent aussi être écrits en langage naturel (pseudo-code) :
Affecter à n la valeur 0
Affecter à A la valeur 1
Affecter à B la valeur 1
Tant que n < 6
Affecter à n la valeur de n + 1
Affecter à C la valeur de B
Affecter à B la valeur de A + B
Affecter à A la valeur de C
Afficher B
Fin Tant que
Cet algorithme affiche les termes de la suite de Fibonacci : 2, 3, 5, 8, 13, 21.
La traduction en Python :
n = 0
A, B = 1, 1
while n < 6:
n = n + 1
C = B
B = A + B
A = C
print(B)
Exemple d’application
Énoncé — On considère la fonction définie par morceaux :
Écrire un programme Python permettant de calculer l’image d’un nombre par .
def f(x): if x < 0: return x**2 + 3 elif x < 10: return 3 - 5*x else: return -x**2 + 5*x + 3
f(-2)→f(5)→f(10)→
Quiz — Algorithmique et programmation Python
10 questions · correction immédiate · sans inscription