Python
Variables et types, affectation, instructions conditionnelles, boucles for et while, fonctions à un ou plusieurs arguments, nombres aléatoires et simulation. Programme de Seconde.
Partie 1 — Variables et instructions élémentaires
Affectation
Une variable est un nom qui désigne une valeur stockée en mémoire. L’affectation se note = en Python (et en langage naturel) : la valeur de droite est calculée, puis rangée dans la variable de gauche.
a = 4
b = 7
c = a + b**5
print(c)
Python affiche 16811, car .
L’instruction x = x + 1 n’est pas une équation : elle remplace la valeur de x par l’ancienne valeur plus 1.
x = 10
y = 20
z = x * y
z = z + x
print(z)
Python affiche 210 : , puis .
Opérations
| Opération | Python | Exemple |
|---|---|---|
| Addition, soustraction | a + b, a - b | 10 - 3 donne 7 |
| Multiplication | a * b | 3 * 4 donne 12 |
| Puissance | a**n | 2**5 donne 32 |
| Division décimale | a / b | 7 / 2 donne 3.5 |
| Quotient entier | a // b | 7 // 2 donne 3 |
| Reste (modulo) | a % b | 17 % 5 donne 2 |
Types de variables
| Type | Python | Exemple |
|---|---|---|
| Entier | int | n = 5 |
| Flottant (nombre décimal approché) | float | x = 3.14, 7 / 2 |
| Chaîne de caractères | str | mot = 'bonjour' |
| Booléen | bool | ok = True, 3 < 5 |
type(x)renvoie le type dex.input("Message")demande une saisie et renvoie toujours une chaîne ; on convertit avecint(input("n = "))oufloat(...).- Les flottants sont des valeurs approchées :
0.1 + 0.2donne0.30000000000000004.
Séquence d’instructions et formules
Les instructions s’exécutent dans l’ordre. Une formule peut combiner plusieurs variables :
from math import *
hauteur = 5
rayon = 4
volume = pi * rayon**2 * hauteur
print(volume)
Résultat : . from math import * donne accès à pi, sqrt (racine carrée), cos, sin, etc.
Partie 2 — Fonctions
Une fonction reçoit des arguments, effectue un calcul et renvoie un résultat avec return.
def aire_disque(rayon):
return pi * rayon**2
aire_disque(12) renvoie .
Fonctions à plusieurs arguments
def f(a, b):
return 2 * a + b
def hypotenuse(a, b):
return sqrt(a**2 + b**2)
f(3, 5) renvoie 11 (les arguments sont pris dans l’ordre) ; hypotenuse(5, 9) renvoie .
return ou print ?
returnrenvoie une valeur, réutilisable dans un calcul :2 * f(3, 5)vaut22.printaffiche seulement ; une fonction qui ne fait qu’afficher renvoieNone.
Fonction mathématique et image
def g(x):
return x**2 + 2
g(5) renvoie : la fonction Python calcule l’image de par .
Partie 3 — Instruction conditionnelle
def parite(n):
if n % 2 == 0:
return 'pair'
else:
return 'impair'
if condition:exécute le bloc indenté si la condition est vraie ;else:s’exécute sinon ;elif(« sinon si ») permet d’enchaîner plusieurs cas : seul le premier bloc dont la condition est vraie est exécuté.
def note(x):
if x > 15:
return 'super'
elif x >= 10:
return 'bien'
else:
return 'insuffisant'
note(16) renvoie 'super' ; note(15) renvoie 'bien' (car 15 > 15 est faux) ; note(9) renvoie 'insuffisant'.
Opérateurs de comparaison et connecteurs
| Opérateur | Signification |
|---|---|
== | égal à (à ne pas confondre avec l’affectation =) |
!= | différent de |
<, > | strictement inférieur, strictement supérieur |
<=, >= | inférieur ou égal, supérieur ou égal |
and, or, not | et, ou, non |
Exemple : 10 <= x and x <= 15 (ou 10 <= x <= 15) teste si .
Algorithme du programme : multiple de ?
def est_multiple(a, b):
if a % b == 0:
return True
else:
return False
est_multiple(91, 7) renvoie True. On peut l’écrire plus simplement return a % b == 0.
Partie 4 — Boucles
Boucle bornée for
La boucle for répète un bloc un nombre de fois connu à l’avance.
def somme(n):
s = 0
for k in range(1, n + 1):
s = s + k
return s
range(1, n + 1) donne les entiers de inclus à exclu, c’est-à-dire . range(n) donne les entiers .
somme(5) renvoie 15 :
| 1 | 2 | 3 | 4 | 5 | ||
|---|---|---|---|---|---|---|
| 0 | 1 | 3 | 6 | 10 | 15 |
Produit des entiers de 1 à 9.
p = 1
for k in range(1, 10):
p = p * k
print(p)
Affiche . Il faut initialiser p = 1 (et non p = 0, sinon le produit reste nul).
Répéter une chaîne.
c = 'on est au '
for k in range(3):
c = c + 'top '
c vaut 'on est au top top top ' : le bloc s’exécute 3 fois ( va de 0 à 2).
Boucle non bornée while
La boucle while répète un bloc tant que la condition est vraie. On ne connaît pas forcément à l’avance le nombre de répétitions.
n = 0
while n < 10:
print(n)
n = n + 1
Affiche les entiers de 0 à 9. La boucle s’arrête quand n < 10 devient faux. Une variable de la condition doit être modifiée dans le bloc, sinon la boucle est infinie.
Recherche de seuil (algorithme du programme)
Plus petit entier tel que :
def seuil():
n = 0
while 2**n <= 1000:
n = n + 1
return n
seuil() renvoie 10 car et .
À partir de quel entier la somme dépasse-t-elle ?
def rang():
s = 0
k = 0
while s < 10000:
k = k + 1
s = s + k
return k
rang() renvoie 141 : et .
Algorithme du programme : encadrement de par balayage
def encadrement(n):
pas = 10**(-n)
x = 1
while x**2 <= 2:
x = x + pas
return x - pas, x
encadrement(2) renvoie un couple proche de (1.41, 1.42) : un encadrement de d’amplitude .
Algorithme du programme : plus grand multiple de inférieur ou égal à
def plus_grand_multiple(a, b):
m = 0
while m + a <= b:
m = m + a
return m
plus_grand_multiple(12, 200) renvoie 192.
Partie 5 — Nombres aléatoires et simulation
Après from random import * :
randint(a, b)renvoie un entier aléatoire entreaetbinclus (les deux bornes, contrairement àrange) ;random()renvoie un flottant aléatoire dans .
Une expérience aléatoire
from random import *
def lancer_de():
return randint(1, 6)
def pile_ou_face():
if random() < 0.5:
return 'pile'
else:
return 'face'
Répéter une expérience et calculer une fréquence
def frequence(n):
c = 0
for k in range(n):
if randint(1, 6) == 6:
c = c + 1
return c / n
frequence(1000) renvoie la fréquence du 6 sur 1000 lancers, par exemple 0.172. Elle change à chaque exécution, mais pour grand elle est proche de : c’est la loi des grands nombres.
La répétition de l’appel d’une fonction aléatoire produit une série statistique : on peut en calculer la moyenne.
Lire une fonction qui renvoie une moyenne
def moyenne_des(n):
s = 0
for k in range(n):
s = s + randint(1, 6)
return s / n
moyenne_des(10000) renvoie une valeur proche de , la moyenne des faces .
Lire une fonction qui renvoie un écart type
Le programme demande de savoir lire et comprendre une fonction renvoyant une moyenne ou un écart type (aucune connaissance sur les listes n’est exigée).
def ecart_type_des(n):
s = 0
s2 = 0
for k in range(n):
d = randint(1, 6)
s = s + d
s2 = s2 + d**2
m = s / n
V = s2 / n - m**2
return V ** 0.5
La variable s cumule les valeurs, s2 leurs carrés ; m est la moyenne, V la variance (moyenne des carrés moins carré de la moyenne) et V ** 0.5 sa racine carrée, l’écart type. ecart_type_des(10000) renvoie une valeur proche de .
Partie 6 — Du langage naturel à Python
Un algorithme peut s’écrire en langage naturel avant d’être traduit.
Exemple — Afficher les six premiers termes suivants de la suite de Fibonacci () :
n ← 0 A ← 1 B ← 1 Tant que n < 6 n ← n + 1 C ← B B ← A + B A ← C Afficher B Fin Tant quen = 0 A = 1 B = 1 while n < 6: n = n + 1 C = B B = A + B A = C print(B)Affiche 2, 3, 5, 8, 13, 21. Tableau d’exécution :
0 1 2 3 4 5 6 1 1 2 3 5 8 13 1 2 3 5 8 13 21 1 2 3 5 8 13
Faire tourner un programme « à la main » dans un tableau permet de vérifier son fonctionnement, une exigence de rigueur essentielle en programmation.
Quiz — Python
10 questions · correction immédiate · sans inscription