Un travail régulier tout au long des deux années est le gage d’une réussite, mais
n’oubliez pas d’être curieux, ne vous arrêtez pas à vos stricts contenus de cours,
votre culture scientifique et technique, votre capacité à faire le lien entre tous les
enseignements que vous aurez suivi, seront la clé de votre réussite.
Les fonctions et procédures
• L'approche efficace pour résoudre un problème
complexe consiste souvent a le décomposer en
plusieurs sous-problèmes plus simples qui seront
étudiés séparément.
• D'autre part, il arrive souvent qu'une même
séquence d'instructions sera utilisée a plusieurs
reprises dans un programme, et on souhaite
évidemment ne pas avoir a la reproduire
systématiquement.
• Le concept de la programmation modulaire permet
de résoudre les difficultés évoquées ci-dessus en
utilisant la notion de fonction (sous programme).
Les fonctions et procédures
Variables locales et globales
Exemple 1
def afficheAddMul(a, b) :
"""Calcule et affiche la somme et le produit de a et b."""
somme = a + b
produit = a * b
print("La somme de", a, " et", b, " est", somme, " et le produit",
produit)
• afficheAddMul(4,5)
Exemple 2
y=10
def afficheAddMul(a, b) :
"""Calcule et affiche la somme et le produit de a et b."""
somme = a + b+y
produit = a * b
print("La somme de", a, " et", b, " est", somme, " et le produit",
produit)
• afficheAddMul(4,5)
Exemple 2
y=10
def afficheAddMul(a, b) :
"""Calcule et affiche la somme et le produit de a et b."""
Global y
somme = a + b+y
produit = a * b
print("La somme de", a, " et", b, " est", somme, " et le produit",
produit)
• afficheAddMul(4,5)
Paramètres avec des valeurs par défaut
• Il est possible de spécifier, lors de la déclaration, des
valeurs par défaut à utiliser pour les arguments. Cela
permet, lors de l’appel, de ne pas avoir à spécifier les
paramètres correspondants.
>>> def accueil(nom, prenom, depart="MPSI2", semestre="S2") :
... print(prenom, nom, "Département", depart, "semestre", semestre)
...
>>> accueil("Radi", "Kamal")
Kamal Radi Département MPSI semestre S2
>>> accueil("Radi ", " Kamal ", "Info")
Kamal Radi Département Info semestre S2
>>> accueil("Radi", "Kamal", semestre="S3")
Kamal Radi Département MPSI semestre S3
Passage d’une fonction en paramètre
• >>> def f(x) :
... return 2*x+1
...
• >>> def g(x) :
... return x//2
...
• >>> def h(fonc, x) :
... return fonc(x)
...
• >>>
• >>> h(f, 3)
7
• >>> h(g, 4)
2
Les types composés(Les séquences)
Classes préparatoires aux grandes écoles (Safi)
Q’est-ce qu’une séquence ?
• Définition
• Une séquence est un conteneur ordonné d’éléments
indexés par des entiers indiquant leur position dans le
conteneur.
• Python dispose de trois types prédéfinis de séquences :
les chaînes ;
les listes ;
les tuples
Les tuples
• Définition
• Un tuple est une collection ordonnée et non modifiable d’éléments
éventuellement hétérogènes.
• Syntaxe
• Éléments séparés par des virgules, et entourés de parenthèses.
• Exemple : mon_tuple = ('a', 2, 4)
• Les composantes d’un tuple sont repérés par des indices i
commençant à 0;
• Les composantes d’un tuple ne sont pas modifiables ;
>>> mon_tuple[2]=3
Traceback (most recent call last):
File "<pyshell#40>", line 1, in <module>
mon_tuple[2]=3
TypeError: 'tuple' object does not support
item assignment
Accès à une partie d’un tuple
(slicing)
• t[i:j] renvoie un sous tuple de t constitués des
composantes i à j(exclu)
• exemple :
• t=(’a’,’b’,’c’,’d’,’e’,’f’)
• t[2:5]
• (’c’,’d’,’e’)
• t[-5,-2]
Opérateur de concaténation +
• permet d’obtenir un tuple constitué de plusieurs
tuples.
• Exemple :
• t=(1,2,3)
• t1=(3,2,1)
• t1+t
• (3,2,1,1,2,3)
Opérateur in
• permet de savoir si un élément appartient à un tuple
• >>> t=(4,5,2,9)
• >>> 4 in t
• True
• >>> 1 in t
• False
Fonction len
• Renvoie le nombre d’éléments dans le tuple sous la
forme d’un entier
• >>> t=(4,5,2,9)
• >>> len(t)
•4
Quelques opération
• >>> t=(4,5,2,9)
• >>> t1=(10,12)
• >>> t2=t+t1*2
• >>> t2
• (4, 5, 2, 9, 10, 12, 10, 12)
Les types composés(Les ensembles)
Classes préparatoires aux grandes écoles (Safi)
Les ensembles
• Définition
• Python fournit également un type de donnée pour
les sets.
• Un ensemble est une collection non ordonnée sans
élément dupliqué..
• Les ensembles supportent également les opérations
mathématiques comme :
les unions;
les intersections;
les différences
différences symétriques
Les ensembles
>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
>>> fruit = set(basket) # create a set without duplicates
>>> fruit
set(['orange', 'pear', 'apple', 'banana'])
>>> 'orange' in fruit # fast membership testing
True
>>> 'crabgrass' in fruit
False
>>> # Demonstrate set operations on unique letters from two words ...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a # unique letters in a
set(['a', 'r', 'b', 'c', 'd'])
>>> a - b # letters in a but not in b différences
set(['r', 'd', 'b'])
>>> a | b # letters in either a or b
set(['a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'])
>>> a & b # letters in both a and b
set(['a', 'c'])
>>> a ^ b # letters in a or b but not both différences symétriques
set(['r', 'd', 'b', 'm', 'z', 'l'])