Académique Documents
Professionnel Documents
Culture Documents
L3 BI-EBUS
Haïfa Nakouri
hayfa.nakouri@esen.tn
ESEN Manouba
2021/2022
Objectifs du chapitre
Prédéfinies
prédéfinies sous Python et toujours accessibles.
Définies par l’utilisateur
définies par le programmeur et personnalisables.
Tous les paramètres ou arguments d’entrée doivent être placés entre ces
parenthèses (les paramètres sont à l’intérieur des fonctions, tandis que les
arguments sont utilisés dans les appels de fonction, c’est-à-dire les valeurs
transmises à la fonction au moment de l’exécution).
Exemples
def my_function():
print("Hello from a function")
def sum(a,b):
return (a+b)
def small(a,b):
if (a<b):
d=a
else:
d=0
return d
Exemples
def Min(a,b):
if (a<b):
return a
else:
return b
def Min(a,b):
if (a<b):
return a
elif (a>b):
return b
else:
s=‘there are equal’
return s
Output :
0
Exercice :
Que retourne ce programme ?
def Info(name,age):
print ("Name: ",name)
print ("Age ",age)
return
#Appel de la fonction Info
Info( age=20, name= "Jim" )
Info(‘Marry’,30)
Info(50,40)
def Info(name,age=35):
print ("Name: ",name)
print ("Age ",age)
#Appels de la fonction Info
Info( age=20, name="Jim" )
Info(‘Mack’)
Output :
Name: Jim
Age 20
Name: Mack
Age 35
Haïfa Nakouri LPE-BI ESEN 2021/2022 12
Appeler une fonction
Exercice :
Que retournent les programmes suivants ?
def Greet(name,msg=‘Greetings!’):
print (name +’, ’+msg)
return
#Appel de Greet
Greet("Jack","Good morning!")
Greet("Yvonne","Good afternoon!")
Greet("Jim","Good evening!")
Greet("Mary")
def Greet(msg=‘Greetings!’,name):
print (msg +’, ’+name)
return
#Appel de Greet
Greet("Good morning! ", "Jack")
Greet("Good afternoon! ", "Yvonne")
Greet("Good evening! ", "Jim")
Haïfa Nakouri
Greet("Mary") LPE-BI ESEN 2021/2022 13
Appeler une fonction
Output :
Name: Mack
Age 24
gender: M
capital letter: ('A', 'B')
def countryISO_code(**code):
print ("ISO codes")
print(code)
return
#Appel de countryISO_code
countryISO_code(tn=“Tunisia”,de="German",en="English",fr="French")
Les règles de base pour le mot-clé global en Python sont les suivantes :
Lorsque nous créons une variable à l’intérieur d’une fonction, elle est
locale par défaut.
Lorsque nous définissons une variable en dehors d’une fonction, elle
est globale par défaut. Vous n’avez pas besoin d’utiliser le mot-clé
global.
Nous utilisons un mot-clé global pour lire et écrire une variable globale
à l’intérieur d’une fonction.
L’utilisation d’un mot-clé global en dehors d’une fonction n’a aucun effet.
def small(a,b):
if(a<b):
d=a
else:
d=0
return d
#Appel
print(small(9,8))
def modify(a): def modify(a): def modify(a): print(d)
x=a x=x+a global x
#Appel #Appel x=x+a
x=10 x=10 Output :
#Appel
modify(99) modify(99) NameError: name ‘d' is not
x=10
print(x) print(x) defined
modify(99)
Output : print(x)
10 Output :
Output :
UnboundLocalError
X est une variable locale,
109 Message d’erreur : les
Aucun effet Message d’erreur : X est variables locales des fonctions
X est une variable locale ne peuvent pas être accédées
reférencée avant l’affectation
X=10+99 de l’extérieur quand l’appel de
function est terminé.
Exercice:
Que retournent les programmes suivants ?
Python adopte le concept d’une fonction imbriquée ou d’une fonction interne, qui
est simplement une fonction définie à l’intérieur d’une autre fonction
Il est important de mentionner que la fonction externe doit être appelée pour que
la fonction interne s’exécute. Si la fonction externe n’est pas appelée, la
fonction interne ne s’exécutera jamais.
def outer(): def outer():
x=5 x=5
def inner(): def inner():
x=10 x=10
print(‘inner’,x) print(‘inner’,x)
return return
inner() inner()
print(‘outer’,x) print(‘outer’,x)
#Appel de la function externe #Appel de la function interne
outer() inner()
Output : Output :
inner 10
outer 5 # Le code ne retourne rien
après exécution
def outside():
msg = "Outside!"
def inside():
msg = "Inside!"
print(msg)
inside()
Output :
print(msg)
Inside!
outside()
Outside!
def outside():
msg = "Outside!"
def inside():
nonlocal msg
msg = "Inside!"
print(msg) Output :
inside() Inside!
print(msg) Inside!
outside()
def function1():
x=2 def outer(num1):
def function2(a): def inner_increment(num1):
nonlocal x return (num1+1)
x=6 num2= inner_increment(num1)
print (a+x)
function2(3) print (num1, num2)
print (x) # Appel de outer
# Appel de function1 outer(10)
function1()
Haïfa Nakouri LPE-BI ESEN 2021/2022 24
Fonctions récursives
Python permet la récursivité des fonctions.
La récursivité est un concept mathématique et de programmation courant.
Cela signifie qu’une fonction s’appelle elle-même. Cela signifie qu’on peut
parcourir les données en boucle pour atteindre un résultat.
Python utilise un mécanisme, connu sous le nom d’appel par objet, parfois
aussi appelé référence d’appel par objet (c’est la façon la plus précise de le
décrire).
Exemple:
def change_Them(a,b):
a.append(5)
b[0]=6
print(a,b)
def change_It(a): return
a=10 #Appel de change_Them
print(a) T1=[10]
return T2=[15]
#Appel de change_It print(type(T1))
b=5 print(type(T2)) Output :
print(type(b)) change_Them(T1,T2) <class 'list'>
change_It(b) print(T1,T2) <class 'list'>
print(b) [10,5] [6]
Output : [10,5] [6]
<class ‘int'>
10
5
Haïfa Nakouri LPE-BI ESEN 2021/2022 29
Passage par valeur / par référence
Exercice:
Que retournent les programmes suivants ? def AddMoney(m):
m+=1
def location(a): print(m)
a.pop(“year”) return
a[‘address’]=“Downtown” #Appel de AddMoney
print(a) Money=1000
def squares(list): return AddMoney(Money)
#Appel de location print(Money)
list.append(5**2) student = {
print(list) “name":“Med", def AddMoney(m):
return “Major":“IT", m+=1
#Appel de squares "year":2019, print(m)
L=[1,4,5] “address”: “Rades” return m
squares(L) } #Appel de AddMoney
print(L) location(student) Money=1000
print(student) Money=AddMoney(Money)
print(Money)
x =lambda a, b, c: a + b + c
Output :
print(x(5, 6, 2))
13
x=lambda a:a** 2
print(x(5)) Output :
25
Output :
Numbers divisible by 13 are [65, 39, 221]
Exercice :
Que retourne le code suivant ?
def calculateSquare(n):
return n*n
numbers = (1, 2, 3, 4)
result = map(calculateSquare, numbers)
print(result)
# converting map object to set
numbersSquare = set(result)
print(numbersSquare)
Output :
193
LPE-BI 38
Les modules en Python
Les modules en Python sont :
Modules prédéfinis:
Contient des ressources pour certaines fonctionnalités
spécifiques au système telles que la gestion du système
d’exploitation, les E/S disque, etc.
La bibliothèque standard contient également de nombreux
scripts Python (avec l’extension .py) contenant des utilitaires
utiles.
Pour afficher la liste de tous les modules disponibles, utilisez
la commande suivante :
help(‘modules’)
Modules définis par l’utilisateur:
Définis et personnalisables par le programmeur.
LPE-BI 39
Modules prédéfinis
import platform
x = platform.system()
print(x) Output :
Windows
LPE-BI 41
Modules prédéfinis
• Example: Importer et utiliser le module os
import os
print(os.getcwd())
#Retourne le dossier courant
Output :
C:\Users\HP\PycharmProjects\MDTutorial
import os
#crée un répertoire
os.mkdir(‘OldDir’)
import time
#La fonction sleep() du module time suspends
l’éxecution pendant quelques secondes
time.sleep(3)
#Renommer un fichier ou un répertoire
os.rename(‘OldDir’,’NewDir’)
#Supprimer un répertoire
os.rmdir(‘NewDir’)
#retle contenu d’un répertoire
print(os.listdir())
LPE-BI 42
Modules prédéfinis
import time
importdatetime
print("Current date and time: " , datetime.datetime.now())
print("Current year: ", datetime.date.today().strftime("%Y"))
print("Month of year: ", datetime.date.today().strftime("%B"))
print("Week number of the year: ",
datetime.date.today().strftime("%W"))
print("Weekday of the week: ",
datetime.date.today().strftime("%w"))
print("Day of year: ", datetime.date.today().strftime("%j"))
print("Day of the month : ",
datetime.date.today().strftime("%d"))
print("Day of week: ", datetime.date.today().strftime("%A"))
import math
content=dir(math)
print(content)
• Résultat affiché
LPE-BI 44
Modules définis par l’utilisateur
LPE-BI 45
Créer et utiliser un module
import calculation
x = dir(calculation)
print(x)
Output :
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__',
'__name__', '__package__', '__spec__', 'add', 'sub']
LPE-BI 47
Exercice
def isPerfect(n):
return sumDiv(n)==n
def isPrime(n):
return sumDiv(n) == 1
LPE-BI 53
Localisation d’un module
LPE-BI 54
Les packages en Python
De même, comme un répertoire peut contenir des sous-
répertoires et des fichiers, un package Python peut avoir des
sous-paquets et des modules.
LPE-BI 55
Les packages en Python
LPE-BI 56
Importer un module d’un package
On peut importer des modules depuis des packages en utilisant
l’opérateur ‘.’.
Examples:
Si on souhaite importer le module start de l’exemple précédent :
import Game.Level.start