23-04-2019, 12:31 AM
23-04-2019, 12:35 AM
Un algorithme est une suite d'instructions écrites dans la langue maternelle
Un programme (ou un script) est un algorithme traduit dans un langage de programmation
algorithme | script scratch | programme python |
Choisir un nombre Ajouter 1 Elever au carré Afficher le résultat |
![]() |
a=float(input()) b=a+1 c=b**2 print (c) |
23-04-2019, 12:38 AM
Les variables sont comme des boites
repérées par une étiquette (le nom de la variable)
dans lesquelles on range des données (la valeur de la variable)
Affecter une valeur à une variable, c'est écrire une valeur dans cette variable
![[Image: pytuto0.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto0.png)
a prend la valeur 3 | algorithme a ← 3 |
python a = 3 |
en écrivant n = n + 1
on ajoute 1 à la valeur de la variable n
on dit que la variable n est incrémentée
23-04-2019, 12:42 AM

• int (un entier : integer en anglais)
• float (un flottant ou un nombre décimal)

• str (une chaîne de caractères : string en anglais)


• bool (un booléen)
Un bool (booléen) est une variable qui n'a que 2 valeurs : True (Vrai) ou False (faux)

Déclarer une variable, c'est créer une variable
En Python, l'affectation d'une valeur à une variable
• déclare la variable
• détermine son type
23-04-2019, 12:46 AM
1) L'instruction d'entrée
Une instruction d'entrée permet à l'utilisateur
pendant l'exécution d'un programme
d'entrer une donnée au clavier
Par défaut, la donnée entrée est un texte
la variable a est une variable de type string (chaîne de caractères)
la variable a est une variable de type int (entier)
la variable a est une variable de type float (décimal)
On peut aussi afficher un message pour indiquer à l'utilisateur ce qu'il doit entrer...
2) L'instruction de sortie
Une instruction de sortie permet
pendant l'exécution d'un programme
d'afficher une donnée
ou bien
Exemple :
![[Image: pytuto25.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto25.png)
Une instruction d'entrée permet à l'utilisateur
pendant l'exécution d'un programme
d'entrer une donnée au clavier
algorithme | programme python |
entrer ou saisir | input() |
Par défaut, la donnée entrée est un texte
Code :
a=input()
Code :
a=int(input())
Code :
a=float(input())
On peut aussi afficher un message pour indiquer à l'utilisateur ce qu'il doit entrer...
Code :
a=int(input("entrer un nombre entier"))
2) L'instruction de sortie
Une instruction de sortie permet
pendant l'exécution d'un programme
d'afficher une donnée
algorithme | programme python |
afficher | print() |
Code :
print (b)
Code :
print ("la valeur de b est" , b)
Exemple :
![[Image: pytuto24.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto24.png)
![[Image: pytuto25.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto25.png)
23-04-2019, 01:03 AM
1) Les opérateurs logiques
Les opérateurs logiques sont utilisés dans les conditions
pour comparer des variables
2) Les instructions conditionnelles ou tests
L'algorithme :
se traduit en Python par :
Exemple :
![[Image: pytuto1.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto1.png)
On peut imbriquer les tests
Dans ce cas on utilise elif qui est la contraction de else if
L'algorithme :
se traduit en Python par :
Exemple :
![[Image: pytuto2.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto2.png)
On peut, bien sûr, écrire plusieurs instructions dans le if, le else ou le elif...
Exemple :
![[Image: pytuto3.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto3.png)
Les opérateurs logiques sont utilisés dans les conditions
pour comparer des variables
opérateur logique | traduction |
== != < <= > >= and or |
est égal à est différent de est strictement inférieur à est inférieur ou égal à est strictement supérieur à est supérieur ou égal à et ou |
2) Les instructions conditionnelles ou tests
L'algorithme :
si condition alors -------début -------instructions -------fin sinon -------début -------instructions -------fin |
se traduit en Python par :
if condition :
|
Exemple :
![[Image: pytuto1.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto1.png)
On peut imbriquer les tests
Dans ce cas on utilise elif qui est la contraction de else if
L'algorithme :
si condition alors -------début -------instructions -------fin sinon si condition alors --------------début --------------instructions --------------fin -------sinon --------------début --------------instructions --------------fin |
se traduit en Python par :
if condition :
|
Exemple :
![[Image: pytuto2.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto2.png)
On peut, bien sûr, écrire plusieurs instructions dans le if, le else ou le elif...
Exemple :
![[Image: pytuto3.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto3.png)
23-04-2019, 01:05 AM
Les instructions itératives ou boucles
sont utilisées pour répéter des instructions
1) Les boucles bornées
Ce sont les boucles que l'on répète n fois (n étant un nombre fixe)
Dans ce paragraphe, on prendra n=10
Dans Scratch, elles correspondent au bloc suivant :
![[Image: pytuto4.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto4.png)
En algorithmique, ce sont les boucles pour
qui utilisent une variable pour compter le nombre de répétitions
En python, ce sont les boucles for
valeur initiale et valeur finale doivent être des nombres entiers
Dans notre exemple, pour répéter 10 fois, on peut écrire :
for i in range(1,11) :
range(1,11) veut dire que la variable i prend successivement les valeurs 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (et pas 11)
ou bien
for i in range(0,10) :
range(0,10) veut dire que la variable i prend successivement les valeurs 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 (et pas 10)
ou bien
for i in range(15,25) :
range(15,25) veut dire que la variable i prend successivement les valeurs 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 (et pas 25)
Par défaut, la valeur initiale est 0
Ainsi range(10) signifie range(0,10)
Exemples :
![[Image: pytuto8.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto8.png)
![[Image: pytuto9.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto9.png)
![[Image: pytuto10.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto10.png)
![[Image: pytuto11.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto11.png)
L'intérêt d'utiliser une variable pour répéter
est qu'on peut utiliser cette variable dans la boucle
![[Image: pytuto12 2.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto12 2.png)
On peut aussi rajouter un pas (ou un incrément)
le pas doit être aussi un nombre entier
• range(4,11,2) veut dire que la variable prend successivement les valeurs 4, 6, 8 et 10
Par défaut, le pas est égal à 1
• range(4,11) veut dire range(4,11,1)
2) L'instruction continue
L'instruction continue permet, dans une boucle, de ne pas exécuter une itération
![[Image: pytuto20 1.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto20 1.png)
![[Image: pytuto20 2.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto20 2.png)
sont utilisées pour répéter des instructions
1) Les boucles bornées
Ce sont les boucles que l'on répète n fois (n étant un nombre fixe)
Dans ce paragraphe, on prendra n=10
Dans Scratch, elles correspondent au bloc suivant :
![[Image: pytuto4.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto4.png)

qui utilisent une variable pour compter le nombre de répétitions
pour variable allant de valeur initiale à valeur finale -------début -------instructions -------fin |

for variable in range(valeur initiale , valeur finale + 1) :
|

Dans notre exemple, pour répéter 10 fois, on peut écrire :
for i in range(1,11) :
range(1,11) veut dire que la variable i prend successivement les valeurs 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (et pas 11)
ou bien
for i in range(0,10) :
range(0,10) veut dire que la variable i prend successivement les valeurs 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 (et pas 10)
ou bien
for i in range(15,25) :
range(15,25) veut dire que la variable i prend successivement les valeurs 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 (et pas 25)

Ainsi range(10) signifie range(0,10)
Le plus simple (pour répéter 10 fois) est donc for i in range(10) : |
Exemples :
![[Image: pytuto8.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto8.png)
![[Image: pytuto9.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto9.png)
![[Image: pytuto10.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto10.png)
![[Image: pytuto11.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto11.png)

est qu'on peut utiliser cette variable dans la boucle

![[Image: pytuto12.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto12.png)
![[Image: pytuto12 0.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto12 0.png)
![[Image: pytuto13.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto13.png)
![[Image: pytuto12 1.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto12 1.png)
![[Image: pytuto12 2.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto12 2.png)

le pas doit être aussi un nombre entier
pour variable allant de valeur initiale à valeur finale pas valeur du pas -------début -------instructions -------fin |
for variable in range(valeur initiale , valeur finale + 1 , valeur du pas) :
|
• range(4,11,2) veut dire que la variable prend successivement les valeurs 4, 6, 8 et 10
Par défaut, le pas est égal à 1
• range(4,11) veut dire range(4,11,1)
2) L'instruction continue

![[Image: pytuto20 1.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto20 1.png)
![[Image: pytuto20 2.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto20 2.png)
23-04-2019, 01:06 AM
2) les boucles non bornées
Ce sont les boucles que l'on répète un certain nombre de fois
tant qu'une condition est vérifiée
Dans Scratch, elles correspondent au bloc suivant :
![[Image: pytuto17.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto17.png)
En algorithmique, ce sont les boucles tant que
En Python, ce sont les boucles while
Exemple :
Voilà une boucle qui va s'exécuter tant que l'utilisateur
n'entre pas au clavier oui ou non
![[Image: pytuto21.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto21.png)
On peut écrire une boucle for avec une boucle while
Il suffit de créer une variable (un compteur)
qui va être incrémentée dans la boucle (pour compter le nombre de passages dans la boucle)
les algorithmes suivants sont équivalents
les programmes Python suivants sont équivalents
![[Image: pytuto20.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto20.png)
Avec une boucle while, on peut créer des boucles avec des valeurs initiales, des valeurs finales et des pas qui sont des nombres décimaux 
la variable n'est pas automatiquement incrémentée (il faut écrire le pas à l'intérieur de la boucle)
Exemple :
![[Image: pytuto20 5.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto20 5.png)
Ce sont les boucles que l'on répète un certain nombre de fois
tant qu'une condition est vérifiée
Dans Scratch, elles correspondent au bloc suivant :
![[Image: pytuto17.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto17.png)
En algorithmique, ce sont les boucles tant que
tant que condition faire -------instructions fin tant que |
En Python, ce sont les boucles while
while condition :
|
Exemple :
Voilà une boucle qui va s'exécuter tant que l'utilisateur
n'entre pas au clavier oui ou non
![[Image: pytuto21.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto21.png)
On peut écrire une boucle for avec une boucle while

Il suffit de créer une variable (un compteur)
qui va être incrémentée dans la boucle (pour compter le nombre de passages dans la boucle)

pour i allant de 3 à 10 -------afficher i fin pour |
3 ⟵ i tant que i<=10 faire -------afficher i -------i ⟵ i + 1 fin tant que |

![[Image: pytuto18.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto18.png)
![[Image: pytuto19.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto19.png)
![[Image: pytuto20.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto20.png)



Exemple :
![[Image: pytuto20 4.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto20 4.png)
![[Image: pytuto20 5.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto20 5.png)
23-04-2019, 01:07 AM
Une liste est une suite ordonnée finie d'éléments
Pour créer une liste, on l'écrit entre crochets, chaque élément étant séparé par une virgule
On peut unir deux listes en utilisant le symbole de concaténation +
![[Image: pytuto30.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto30.png)
Les éléments d'une liste sont numérotés
Le numéro d'un élément s'appelle son index
Le premier index est toujours 0
L[0] est la valeur du premier élément de la liste L
L[n] est la valeur de l'élément d'index n de la liste L
L[-1] est la valeur du dernier élément de la liste L
L[a:b] est la liste des valeurs des éléments d'index a à b (b exclu) de la liste L
Liste et boucle pour


![[Image: pytuto30.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto30.png)
Les éléments d'une liste sont numérotés
Le numéro d'un élément s'appelle son index

L[0] est la valeur du premier élément de la liste L
L[n] est la valeur de l'élément d'index n de la liste L
L[-1] est la valeur du dernier élément de la liste L
L[a:b] est la liste des valeurs des éléments d'index a à b (b exclu) de la liste L
del L[3] L.remove(5) len(L) L.count(5) L.index(5) L.sort() L.sort(reverse=True) L.reverse() L.append(n) |
supprime l'élément d'index 3 de la liste L (delete) supprime la première occurence de la valeur 5 de la liste L retourne la longueur de la liste L (lenght) retourne le nombre de 5 de la liste L retourne l'index de la première occurence de la valeur 5 dans la liste L trie la liste L par ordre croissant trie la liste L par ordre décroissant inverse l'ordre des valeurs de la liste L rajoute le nombre n à la fin (end) de la liste |
Liste et boucle pour
pour variable parcourant liste -------début -------instructions -------fin |
for variable in liste :
|
23-04-2019, 01:08 AM
Une fonction mathématique possède : • un nom (en mathématiques, on l'appelle souvent f) • une entrée (où on entre un nombre, on l'appelle souvent x) • une sortie (où on récupère un nombre, on l'appelle souvent y = f(x)) |
Une fonction en programmation possède : • un nom • des entrées appelées paramètres • des sorties : on dit qu'elles sont renvoyées (return en anglais) par la fonction |
L'utilisation de fonctions permet :
• de faciliter la lecture des programmes
• d'éviter de recopier plusieurs fois un groupe d'instructions semblables
Voilà le même programme :
> sans utiliser de fonction
![[Image: pytuto40.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto40.png)
> en utilisant une fonction

![[Image: pytuto39.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto39.png)
> même affichage
![[Image: pytuto38.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto38.png)
Voici une fonction périmètrerectangle à 2 paramètres
qui retourne le périmètre d'un rectangle connaissant sa largeur et sa longueur
![[Image: pyt172.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pyt172.png)
Quand on l'appelle (dans la console) en donnant des valeurs aux deux paramètres
la valeur retournée s'affiche
![[Image: pyt173.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pyt173.png)
Voici une fonction aff qui n'a pas de paramètre
et qui ne retourne rien
![[Image: pytuto36.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto36.png)
quand on l'appelle (dans la console)
s'affiche "ça fonctionne !"
![[Image: pytuto37.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto37.png)
23-04-2019, 01:09 AM

• Le module math contient des fonctions mathématiques
Parmi les plus utilisées :
Le module math | |
cos(a) | cosinus de a |
sin(a) | sinus de a |
tan(a) | tangente de a |
exp(a) | exponentielle de a |
log(a) | logarithme népérien de a>0 |
floor(a) | arrondi de a à l'entier inférieur (partie entière) (floor veut dire plancher en anglais...) |
ceil(a) | arrondi de a à l'entier supérieur (ceil veut dire plafond en anglais...) |
floor(a) | partie entière de a |
factorial(n) | factorielle d'un entier n |
pow(a,b) | a puissance b |
sqrt(a) | racine carrée de a>=0 |
• Le module random permet de générer des nombres aléatoires
Parmi les plus utilisés :
Le module random | |
randint(a,b) | nombre entier aléatoire entre a (inclus) et b (inclus) |
random() | nombre décimal aléatoire entre 0 (inclus) et 1 (exclus) |
uniform(a,b) | nombre décimal aléatoire entre a (inclus) et b (inclus) |
• Le module numpy permet des opérations sur les listes et les matrices
• Le module matplotlib permet de dessiner des courbes dans un repère
(voir le tutoriel suivant...)

![]() |
Edupython possède un module lycée qui possède toutes les fonctions mathématiques utilisées au lycée
Il suffit donc, au début de chaque programme d'importer cette bibliothèque

![[Image: import1.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/TPAlgo/import1.png)
23-04-2019, 01:10 AM
Le module (ou bibliothèque : library en anglais...) matplotlib permet de dessiner, de tracer des courbes, des histogrammes...
Il est formé de plusieurs bibliothèques, notamment :
matplotlib.pyplot pour dessiner des points, des segments, des figures...
la fenêtre graphique | |
from matplotlib.pyplot import * | importe la bibliothèque |
axis([xmin,xmax,ymin,ymax]) ou bien xlim(xmin,xmax) et ylim(ymin,ymax) |
définit la taille de la fenêtre graphique xmin, xmax, ymin et ymax (comme sur une calculatrice) |
show() | montre la fenêtre graphique |
grid() | montre la grille |
axis("equal") | montre un repère orthonormé |

la commande plot | ||
avec 1 point | plot ([xA],[yA],"x") | dessine le point A avec une croix x |
avec 2 points | plot ([xA,xB],[yA,yB],"+") | dessine les points A et B avec des croix + |
avec 3 points ou plus | plot ([xA,xB, ... ,xC],[yA,yB, ... ,yC],"o") | dessine le nuage de points A, B, ..., C avec des ronds o |
avec 2 points | plot ([xA,xB],[yA,yB]) | dessine le segment [AB] |
avec 3 points ou plus | plot ([xA,xB, ... ,xC],[yA,yB, ... ,yC]) | dessine la ligne brisée [AB...C] |
Explications et compléments... :
Cette commande a 3 arguments plot(liste d'abscisses,liste d'ordonnées,chaîne de caractères)

Voici un exemple pour montrer les 3 points de coordonnées (-1;-2) (3;4) et (5;1)
Code :
x=[-1,3,5]
y=[-2,4,1]
plot(x,y)
Code :
plot([-1,3,5],[-2,4,1])

• 1 caractère pour la forme des points
• 1 caractère pour la couleur
• 1(ou 2) caractère(s) pour le style de la ligne qui relie les points
Voici un tableau pour montrer les codes utilisés
la forme des points | la couleur | le style de ligne |
; , o v ^ < > * + x | _ s carré p pentagone h hexagone1 H hexagone2 d diamant fin D diamant |
b bleu g vert r rouge c cyan m magenta y jaune k noir w blanc |
- ligne continue -- tirets : ligne en pointillés -. tirets points |
23-04-2019, 01:14 AM
Nous avons vu qu'on peut importer un module (c'est-à-dire un ensemble de fonctions prédéfinies (déjà écrites))
par exemple le module math qui contient la fonction sqrt
(ces fonctions n'apparaissent pas dans nos programmes car en important un module, ces fonctions sont reconnues par Python)
Nous avons vu aussi qu'on peut définir des fonctions
à l'intérieur d'un programme
L'utilisation de fonctions permet :
• de faciliter la lecture des programmes
• d'éviter de recopier plusieurs fois un groupe d'instructions semblables
Voilà le même programme :
> sans utiliser de fonction
![[Image: pytuto500.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto500.png)
> en utilisant une fonction
![[Image: pytuto501.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto501.png)
On voit maintenant apparaître la structure d'un programme Python
Que fait donc Python quand on exécute ce programme ?
Il exécute les instructions dans l'ordre en commençant au début
Voilà les 17 lignes exécutées
début du programme
ligne 8 : rien à faire (un commentaire)
ligne 9 (importation du module math)
ligne 10 : rien à faire
ligne 11 : rien à faire (un commentaire)
ligne 12 : rien à faire (une déclaration de fonction)
ligne 13 : rien à faire (une déclaration de fonction)
ligne 14 : rien à faire (une déclaration de fonction)
ligne 15 : rien à faire (une déclaration de fonction)
ligne 16 : rien à faire
ligne 17 : rien à faire (un commentaire)
ligne 18 (affichage du texte)
ligne 19 (appel de la fonction fct)
ligne 12 (exécution de la fonction fct en remplaçant son paramètre x par 5)
ligne 13 (exécution de la fonction fct en remplaçant son paramètre x par 5)
ligne 14 (exécution de la fonction fct en remplaçant son paramètre x par 5)
ligne 15 (exécution de la fonction fct en remplaçant son paramètre x par 5)
ligne 20 (appel de la fonction fct)
ligne 12 (exécution de la fonction fct en remplaçant son paramètre x par 6)
ligne 13 (exécution de la fonction fct en remplaçant son paramètre x par 6)
ligne 14 (exécution de la fonction fct en remplaçant son paramètre x par 6)
ligne 15 (exécution de la fonction fct en remplaçant son paramètre x par 6)
ligne 21 (appel de la fonction fct)
ligne 12 (exécution de la fonction fct en remplaçant son paramètre x par 7)
ligne 13 (exécution de la fonction fct en remplaçant son paramètre x par 7)
ligne 14 (exécution de la fonction fct en remplaçant son paramètre x par 7)
ligne 15 (exécution de la fonction fct en remplaçant son paramètre x par 7)
fin du programme
Vous avez remarqué qu'au début, la machine ne lit pas les fonctions
Python n'exécute les fonctions que quand elles sont appelées dans le programme principal
Une fonction peut être vue comme un sous-programme
qui s'exécute quand le programme principal l'appelle
Et comme une fonction est indépendante du programme principal
on pourra l'utiliser (si besoin) dans un futur programme
D'ailleurs, on représente graphiquement les programmes principaux et les fonctions par des algorigrammes séparés..!
Exemple
par exemple le module math qui contient la fonction sqrt
(ces fonctions n'apparaissent pas dans nos programmes car en important un module, ces fonctions sont reconnues par Python)
Nous avons vu aussi qu'on peut définir des fonctions
à l'intérieur d'un programme
L'utilisation de fonctions permet :
• de faciliter la lecture des programmes
• d'éviter de recopier plusieurs fois un groupe d'instructions semblables
Voilà le même programme :
> sans utiliser de fonction
![[Image: pytuto500.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto500.png)
> en utilisant une fonction

![[Image: pytuto501.png]](http://mathsbidouille.free.fr/ImagesForumMathsBi/python/pytuto501.png)
On voit maintenant apparaître la structure d'un programme Python

Importation des modules |
Déclarations des fonctions |
Programme principal |
Que fait donc Python quand on exécute ce programme ?
Il exécute les instructions dans l'ordre en commençant au début
Voilà les 17 lignes exécutées
début du programme
ligne 8 : rien à faire (un commentaire)
ligne 9 (importation du module math)
ligne 10 : rien à faire
ligne 11 : rien à faire (un commentaire)
ligne 12 : rien à faire (une déclaration de fonction)
ligne 13 : rien à faire (une déclaration de fonction)
ligne 14 : rien à faire (une déclaration de fonction)
ligne 15 : rien à faire (une déclaration de fonction)
ligne 16 : rien à faire
ligne 17 : rien à faire (un commentaire)
ligne 18 (affichage du texte)
ligne 19 (appel de la fonction fct)
ligne 12 (exécution de la fonction fct en remplaçant son paramètre x par 5)
ligne 13 (exécution de la fonction fct en remplaçant son paramètre x par 5)
ligne 14 (exécution de la fonction fct en remplaçant son paramètre x par 5)
ligne 15 (exécution de la fonction fct en remplaçant son paramètre x par 5)
ligne 20 (appel de la fonction fct)
ligne 12 (exécution de la fonction fct en remplaçant son paramètre x par 6)
ligne 13 (exécution de la fonction fct en remplaçant son paramètre x par 6)
ligne 14 (exécution de la fonction fct en remplaçant son paramètre x par 6)
ligne 15 (exécution de la fonction fct en remplaçant son paramètre x par 6)
ligne 21 (appel de la fonction fct)
ligne 12 (exécution de la fonction fct en remplaçant son paramètre x par 7)
ligne 13 (exécution de la fonction fct en remplaçant son paramètre x par 7)
ligne 14 (exécution de la fonction fct en remplaçant son paramètre x par 7)
ligne 15 (exécution de la fonction fct en remplaçant son paramètre x par 7)
fin du programme
Finalement, nous faisons exactement la même chose.. devant un exercice de maths..!
Exemple
# définition de la fonction
Soit f la fonction définie par f(x) = 2 √x + 1
# questions
1) calculer f(5)
2) calculer f(6)
3) calculer f(7)
Que fait-on..?
On lit l'énoncé (rien à faire)
On répond à la question 1) (en écrivant sur le cahier ce qu'il faut faire)
On exécute la fonction f en remplaçant x par 5 (en écrivant les calculs et le résultat)
On répond à la question 2) (en écrivant sur le cahier ce qu'il faut faire)
On exécute la fonction f en remplaçant x par 6 (en écrivant les calculs et le résultat)
On répond à la question 3) (en écrivant sur le cahier ce qu'il faut faire)
On exécute la fonction f en remplaçant x par 7 (en écrivant les calculs et le résultat)
Exemple
# définition de la fonction
Soit f la fonction définie par f(x) = 2 √x + 1
# questions
1) calculer f(5)
2) calculer f(6)
3) calculer f(7)
Que fait-on..?
On lit l'énoncé (rien à faire)
On répond à la question 1) (en écrivant sur le cahier ce qu'il faut faire)
On exécute la fonction f en remplaçant x par 5 (en écrivant les calculs et le résultat)
On répond à la question 2) (en écrivant sur le cahier ce qu'il faut faire)
On exécute la fonction f en remplaçant x par 6 (en écrivant les calculs et le résultat)
On répond à la question 3) (en écrivant sur le cahier ce qu'il faut faire)
On exécute la fonction f en remplaçant x par 7 (en écrivant les calculs et le résultat)

Vous avez remarqué qu'au début, la machine ne lit pas les fonctions
Python n'exécute les fonctions que quand elles sont appelées dans le programme principal
Une fonction peut être vue comme un sous-programme
qui s'exécute quand le programme principal l'appelle
Et comme une fonction est indépendante du programme principal
on pourra l'utiliser (si besoin) dans un futur programme

D'ailleurs, on représente graphiquement les programmes principaux et les fonctions par des algorigrammes séparés..!
Exemple
