BDW - Programmation web - Bases de Python
Fabien Duchateau
[Link] [at] [Link]
Université Claude Bernard Lyon 1
2025 - 2026
[Link]
Positionnement dans BDW
Ces diapositives utilisent le genre féminin (e.g., chercheuse, développeuses) plutôt que
l’écriture inclusive (moins accessible, moins concise, et pas totalement inclusive)
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 2 / 47
Motivation - site sur les séries
Séries Saisons
Découper
idSaison
nomSérie 0,n (1,1)
dateLancement
0,n
Contenir
(1,1)
Actrices Épisodes
numINSEE
Jouer
numéro
nom 0,n salaire 2,n
titre
prénom
Séries (nomSérie)
Saisons (idSaison, dateLancement, #nomSérie)
Épisodes (numéro, #idSaison, titre)
Actrices (numINSEE, nom, prénom)
Jouer (#numéro, #idSaison, #numINSEE, salaire)
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 3 / 47
Motivation - site sur les séries (2)
Réalisation d’un site web :
I Afficher les séries
I Ajouter une série
I Rechercher une série
ou une actrice
I …
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 4 / 47
Rappels
HTML pour le contenu, CSS pour la mise en page/forme, et Python
pour l’aspect dynamique (e.g., interrogation BD)
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 5 / 47
Rappels
Une page web dynamique est générée à la volée par un serveur
HTML et CSS insuffisants pour des besoins comme :
I Manipulation de bases de données
I Interactions avec le système de fichiers
I Utilisation de bibliothèques logicielles
I Plus généralement pour des traitements complexes
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 6 / 47
Rappels
Une page web dynamique est générée à la volée par un serveur
HTML et CSS insuffisants pour des besoins comme :
I Manipulation de bases de données
I Interactions avec le système de fichiers
I Utilisation de bibliothèques logicielles
I Plus généralement pour des traitements complexes
Besoin d’un langage (côté serveur) comme Python
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 6 / 47
Plan
Prérequis
Syntaxe et types
Opérations
Structures de contrôle
Fonctions
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Généralités
Langage Python (en référence aux Monty Python) :
I Origine : 1991 (Guido von Rossum), désormais
maintenu par la Python Software Foundation
I Version 3 (ne plus utiliser la version 2)
I Python Licence (code ouvert)
I Populaire et largement utilisé (NASA, Netflix, YouTube, Spotify,
Reddit, Google) mais 80% des sites web utilisent PHP
[Link]
[Link]
[Link]
[Link]
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 8 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Caractéristiques du langage
I Python est un langage de haut niveau, à usage général
I Sources d’inspiration : C++, Lisp, Perl, etc.
I Utilisations : scripting, applications de bureau, programmation
web, machine learning, etc.
I Multi-paradigmes (de programmation), dont procédural,
fonctionnel, impératif, orienté objet et réflexif
I Batteries included, avec la Python Standard Library
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 9 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Caractéristiques du langage
I Python est un langage de haut niveau, à usage général
I Sources d’inspiration : C++, Lisp, Perl, etc.
I Utilisations : scripting, applications de bureau, programmation
web, machine learning, etc.
I Multi-paradigmes (de programmation), dont procédural,
fonctionnel, impératif, orienté objet et réflexif
I Batteries included, avec la Python Standard Library
Dans notre contexte, utilisation de Python en procédural
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 9 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Philosophie
I Zen of Python, une liste de 19
recommandations pour écrire du
code pythonique :
I facile à lire et comprendre
I simple plutôt que complexe
I épars plutôt que dense
I …
I Python Enhancement Proposal
(PEP), pour proposer des
améliorations du langage (e.g.,
style de code dans la PEP8)
[Link]
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 10 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Installation de Python
Cette UE nécessite une version de Python >= 3.11
À la fac ou sur Basthon (pour de petits tests uniquement) :
I Python 3.11 ,
Sur une machine personnelle :
I Vérifier sa version de Python (en ligne de commande)
$ python ––version
Python 3.11.6 # ok, version > 3.11
I Si besoin, installer ou mettre à jour ([Link]
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 11 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Environnements virtuels
Un environnement virtuel est une installation de Python autonome,
dans un répertoire auto-suffisant
I Évite de ”polluer” les installations Python du système
I Évite les conflits entre packages (ou entre différentes versions
d’un même package)
I Évite un dysfonctionnement quand les installations Python du
système sont mises à jour
Pour chaque projet, il est recommandé de créer un environnement
virtuel pour exécuter indépendamment son code
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 12 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Environnements virtuels - création et activation
Lancer un terminal (ou invite de commande sous Windows) pour
saisir les commandes suivantes.
Pour créer un environnement virtuel dans le répertoire .venv :
python -m venv .venv # à ne lancer qu'une fois !
# ou en précisant la version de python pour l'environnement
python3.10 -m venv .venv # environnement avec python 3.10
Pour utiliser/activer l’environnement virtuel du répertoire .venv :
source .venv/bin/activate # sous linux, macos
# ou
.venv\Scripts\activate # sous windows
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 13 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Environnements virtuels - exemple
$ which python
/usr/local/bin/python3
$ python –version
Python 3.7.7
$ python3.11 -m venv mon-nouvel-env
$ source mon-nouvel-env/bin/activate
(mon-nouvel-env) $ which python
/usr/fabien/mon-nouvel-env/bin/python
(mon-nouvel-env) $ python –version
Python 3.11.6
$
La commande python actuelle pointe vers /usr/local/bin en version
3.7.7. On utilise une version spécifique de python (3.11) pour créer un
environnement virtuel et l’activer. Les dernières lignes confirment que
python pointe sur la version 3.11 du répertoire mon-nouvel-env.
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 14 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Exécution de code Python
Pour exécuter un fichier de code (ici [Link]) :
[Link] $ python [Link]
print('Hello, world!')
Hello, world !
$
Pour exécuter du code dans un shell interactif (petits tests) :
$ python
Python 3.11.6 (main, Oct 2 2024, 18 :01 :19) on darwin
Type ”help”, ”copyright”, ”credits” or ”license” for more information.
>>> print(’Hello, world !’)
Hello, world !
>>>
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 15 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Éditeurs Python
Liste non exhaustive :
I Spécifiques Python : Pycharm, IDLE, Thonny, Spyder, …
I Génériques : VSCodium, Geany, Notepad++, Brackets, Atom,
Emacs, …
I Frameworks : Django, Flask, FastAPI, …(pas pour cette UE)
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 16 / 47
Plan
Prérequis
Syntaxe et types
Opérations
Structures de contrôle
Fonctions
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Généralités
Le langage Python est :
I Interprété (pas de compilation)
I À typage dynamique (au moment de l’exécution)
I À typage fort (e.g., pas d’opération interdite comme string +
integer)
I Responsable de la gestion mémoire (garbage collector )
I Basé sur l’indentation pour séparer les blocs de code
Un fichier Python (extension .py) est un code source exécutable
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 18 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Bonnes pratiques
Guide de style dans la PEP8 :
I Encodage UTF-8
I Indentation de 4 espaces (par niveau d’indentation), etc.
I Nommage de variable ou fonction : snake_case, i.e., en
minuscules, les termes étant séparés par des '_' (e.g., nb_series)
I Nommage de constante : en majuscules, les termes étant séparés
par des '_' (e.g., MAX_LINES)
I …
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 19 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Commentaires
Commentaire uniligne (dièse) :
# commentaire
a = 1 # commentaire
Commentaire multiligne (paire
de 3 guillemets, simples ou
doubles) :
'''
commentaire
multiligne
'''
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 20 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Variables
I Python assigne un type
automatiquement lors de
l’exécution
I Affectation : un nom de
variable suivi du symbole = et
d’une valeur
I Utiliser des noms explicites
compteur = 1
nom_ue = 'BDW'
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 21 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Types de données
I Types simples : bool, int, float, str (chaînes de caractères)
I Types composés : list et tuple (séquence ordonnée
d’éléments), dict (mappings)
I Absence de valeur : None
I Les variables et objets peuvent s’évaluer à vrai ou faux (True ou
False)
I Certaines opérations sont valables sur tous les objets (e.g.,
comparaison par égalité, test booléen, conversion en chaîne de
caractères)
[Link]
Également d’autres types comme complex, set, bytearray, …
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 22 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Chaînes de caractères
I Valeur d’une chaîne délimitée par des guillemets simples
('chaine') ou doubles ("chaine"), sans aucune différence
I Concaténation de chaînes avec le symbole +
I Méthode print() pour afficher une chaîne (dont la variante
f-string permettant d’y concaténer des valeurs)
>>> acro = 'BD'
>>> print(acro + ' : base de données')
BD : base de données
>>> print(acro + " : bande-dessinée")
BD : bande-dessinée
>>> print(f"{acro} : blu-ray disk")
BD : blu-ray disk
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 23 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Tuples
Un tuple est immutable, donc non modifiable !
mon_tuple = tuple() # nouveau tuple vide
mon_tuple = (1, False, 'a') # nouveau tuple avec éléments
Quelques opérations communes aux types composés :
mon_tuple[0] # 1 (premier indice = 0)
mon_tuple[0:2] # 1, False (borne supérieure exlue)
Test d’appartenance (ou non) à un tuple :
'a' in mon_tuple # True
0 not in mon_tuple # True
Autres opérations (concaténation, plus petit/grand élément, etc.)
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 24 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Listes
Une liste est mutable, donc modifiable
ma_liste = list() # nouvelle liste vide
ma_liste = [0, 1, 'a', "b", True] # nouvelle liste valuée
Quelques opérations communes aux types composés :
ma_liste[2] # 'a' (premier indice = 0)
len(ma_liste) # 5
'a' not in ma_liste # False
Opérations de modification de la liste :
ma_liste.append('Z') # [0, 1, 'a', "b", True, 'Z']
ma_liste[3] = 'x' # [0, 1, 'a', 'x', True, 'Z']
del ma_liste[3] # [0, 1, 'a', True, 'Z']
Autres opérations (copie, inversion, tri, etc.)
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 25 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Dictionnaires (mappings)
Un dictionnaire associe des clés à des objets
mon_dict = dict() # nouveau dict vide
mon_dict = {1: 'a', 'b': True} # nouveau dict valué
Quelques opérations communes aux types composés :
mon_dict[1] # 'a'
len(mon_dict) # 2
'a' in mon_dict # False (pas de clé 'a')
Opérations spécifiques au dictionnaire :
keys(mon_dict) # [1, 'b']
values(mon_dict) # ['a', True]
mon_dict['x'] = 'Y' # {1: 'a', 'b': True, 'x': 'Y'}
del mon_dict['b'] # {1: 'a', 'x': 'Y'}
Autres opérations (copie, mises à jour, etc.)
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 26 / 47
Plan
Prérequis
Syntaxe et types
Opérations
Structures de contrôle
Fonctions
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Opérateurs booléens
I and : et logique
I or : ou logique
I not : négation
1 and 0 # 0
1 or 0 # 1
'' or [1] # [1]
not(42) # False
not('') # True
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 28 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Opérateurs arithmétiques
I +, -, *, /, //, %, ** : addition, soustraction,
multiplication, division, division entière, modulo (reste de x /
y), puissance
I abs(x) : valeur absolue de x
I round(x, n) :arrondi de x à n chiffres après la virgule
I int(x), float(x) : conversion de x en entier ou décimal
42 + 1 # 43
42 // 9 # 4
42 % 9 # 6
2 ** 3 # 8
round(1.2345, 2) # 1.23
int("42") # 42
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 29 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Opérateurs de comparaison
I ==, != : égalité, différence (deux objets de type différents ne
sont jamais égaux, sauf numériques)
I <, <=, >, >= : infériorité et supériorité (strictes ou non)
I is, is not : identité d’objet (et sa négation)
1 <= 2 # True
1 != 2 # True
42 == 42.0 # True
42 == '42' # False
42 is None # False
0 is not "0" # True
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 30 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Quelques fonctions standard
I type(x) : type de données de la variable x
I len(x) : nombre d’éléments dans la séquence x (e.g., list, str,
dict)
I range([start], stop, [step]) : retourne un objet
représentant une séquence de l’entier start jusque l’entier stop
(exclus) par pas de step
type(1) # int
type([1, 2]) # list
len('abcde') # 5
len([0, 1, 2, 3]) # 4
list(range(4)) # [0, 1, 2, 3]
list(range(0, 9, 2)) # [0, 2, 4, 6, 8]
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 31 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
En résumé
[Link]
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 32 / 47
Plan
Prérequis
Syntaxe et types
Opérations
Structures de contrôle
Fonctions
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Syntaxe générale
Un programme, c’est une suite d’instructions (e.g., assignation, appel
de fonction, instruction conditionnelle)
Un bloc d’instructions s’identifie par son indentation
(recommandation de 4 espaces par niveau d’indentation, ne pas
mélanger espaces et tabulations !)
a = 5 # niveau 0 indentation
if a > 0:
i = 0 # bloc d'instructions niveau 1
while i < a:
print(i) # bloc d'instructions niveau 2
i += 1
print(a)
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 34 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Instruction if…else
La structure conditionnelle if…else est similaire aux autres langages
de programmation :
I Si la condition renvoie True, exécution des instructions dans le
bloc du if
I Sinon, on exécute les instructions dans le bloc du else (qui est
facultatif)
chaine = 'hello'
if chaine:
print(chaine)
else:
print("La variable n'existe pas.")
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 35 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Instruction if…else
La structure conditionnelle if…else est similaire aux autres langages
de programmation :
I Si la condition renvoie True, exécution des instructions dans le
bloc du if
I Sinon, on exécute les instructions dans le bloc du else (qui est
facultatif)
chaine = 'hello'
if chaine:
print(chaine)
else:
print("La variable n'existe pas.")
Résultat : hello
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 35 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Instruction if…elif…else
En cas de tests multiples, on peut ajouter une ou plusieurs
instructions elif
I Aussi une instruction match…case pour de nombreux choix (e.g,
menu)
chaine = 'hello'
if not chaine:
print("La variable n'existe pas ou ne contient que des
,→ espaces.")
elif [Link](): # vraie si chaine en minuscules
print("La variable chaine est en minuscules.")
else:
print(f"La variable chaine est en majuscules")
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 36 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Instruction if…elif…else
En cas de tests multiples, on peut ajouter une ou plusieurs
instructions elif
I Aussi une instruction match…case pour de nombreux choix (e.g,
menu)
chaine = 'hello'
if not chaine:
print("La variable n'existe pas ou ne contient que des
,→ espaces.")
elif [Link](): # vraie si chaine en minuscules
print("La variable chaine est en minuscules.")
else:
print(f"La variable chaine est en majuscules")
Résultat : La variable chaine est en minuscules.
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 36 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Les boucles
I Permettent de répéter un bloc d’instructions tant qu’une
condition est vérifiée
I Utile pour parcourir une séquence, etc.
I Deux types de boucles en Python :
I while
I for
[Link]
[Link]
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 37 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Boucle while
Une boucle while (”tant que”) exécute les instructions tant que la
condition est vérifiée
n = 2
while n < 10:
print(n)
n += 3
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 38 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Boucle while
Une boucle while (”tant que”) exécute les instructions tant que la
condition est vérifiée
n = 2
while n < 10:
print(n)
n += 3
Résultat : 2 5 8
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 38 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Boucle for
Une boucle for (”pour”) permet d’itérer sur une séquence (e.g., liste,
tuple, chaine de caractères ou tout autre objet itérable) en exécutant
les instructions à chaque itération
for i in range(3, 10, 2):
print(i)
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 39 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Boucle for
Une boucle for (”pour”) permet d’itérer sur une séquence (e.g., liste,
tuple, chaine de caractères ou tout autre objet itérable) en exécutant
les instructions à chaque itération
for i in range(3, 10, 2):
print(i)
Résultat : 3 5 7 9
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 39 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Boucle for (2)
ma_liste = [0, 1, 'a', "b", True]
for _ in ma_liste:
print(_, end=' ') # paramètre end pour remplacer le retour à la
,→ ligne par un espace
mon_dict = {1: 'a', 'b': True}
for k, v in mon_dict.items():
print(f"{k} : {v}", end='\t') # \t correspond à une tabulation
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 40 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Boucle for (2)
ma_liste = [0, 1, 'a', "b", True]
for _ in ma_liste:
print(_, end=' ') # paramètre end pour remplacer le retour à la
,→ ligne par un espace
Résultat : 0 1 a b True
mon_dict = {1: 'a', 'b': True}
for k, v in mon_dict.items():
print(f"{k} : {v}", end='\t') # \t correspond à une tabulation
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 40 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Boucle for (2)
ma_liste = [0, 1, 'a', "b", True]
for _ in ma_liste:
print(_, end=' ') # paramètre end pour remplacer le retour à la
,→ ligne par un espace
Résultat : 0 1 a b True
mon_dict = {1: 'a', 'b': True}
for k, v in mon_dict.items():
print(f"{k} : {v}", end='\t') # \t correspond à une tabulation
Résultat : 1 : a b : True
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 40 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Autres structures de contrôle
I assert, pour vérifier des assertions (tests unitaires)
I continue, break pour continuer à l’itération suivante ou sortir
d’une boucle
I …
[Link]
[Link]
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 41 / 47
Plan
Prérequis
Syntaxe et types
Opérations
Structures de contrôle
Fonctions
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Généralités
Une fonction est un ensemble d’instructions réutilisable :
I En entrée, 0 ou plusieurs paramètres
I Retourne une valeur (conseillé, e.g., un booléen indiquant le
succès/échec de l’exécution de la fonction)
I Est un objet en Python
Quand utiliser des fonctions ?
I Traitement récurrent (affichage, calcul, etc.)
I Traitement similaire mais avec des valeurs différentes en entrée
I …
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 43 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Définition d’une fonction
En Python, une fonction se définit par le mot clé def :
I nom_fonction = le nom de la fonction
I param1, param2, … = paramètres, pour lesquels il est possible de
préciser une valeur par défaut (ici True pour param2)
I valeur = l’une des valeurs de retour, introduite par le mot clé
return
def nom_fonction(param1, param2=True, ...):
# instructions
return valeur
[Link]
Fonctions anonymes (lambda), [Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 44 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Exemples de fonction
def sommer(a, b):
return a + b
sommer(1, 2) # appel de la fonction sommer()
Une fonction qui somme deux nombres passés en paramètres
def sommer(a: int, b: int) -> int:
return a + b
sommer(1, 2) # appel de la fonction sommer()
Même fonction, avec des annotations précisant le type attendu des
paramètres et de la valeur retour (mais c’est non contraignant)
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 45 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Un moment de réflexion
Écrire une fonction pour colorer des notes stockées dans une liste
(vert pour les notes supérieures à 10, rouge sinon)
1 def colorier_note(note):
2
3
4
5
6
7 notes = [12, 17, 8, 10, 14, 3] # liste de notes
8
9
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 46 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Un moment de réflexion
Écrire une fonction pour colorer des notes stockées dans une liste
(vert pour les notes supérieures à 10, rouge sinon)
1 def colorier_note(note):
2 couleur = 'red' # couleur rouge par défaut
3 if note > 10:
4 couleur = 'green' # couleur vert si note > 10
5
6
7 notes = [12, 17, 8, 10, 14, 3] # liste de notes
8
9
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 46 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Un moment de réflexion
Écrire une fonction pour colorer des notes stockées dans une liste
(vert pour les notes supérieures à 10, rouge sinon)
1 def colorier_note(note):
2 couleur = 'red' # couleur rouge par défaut
3 if note > 10:
4 couleur = 'green' # couleur vert si note > 10
5 print(f'<span style="color: {couleur};">{note}</span>')
6
7 notes = [12, 17, 8, 10, 14, 3] # liste de notes
8
9
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 46 / 47
Prérequis Syntaxe et types Opérations Structures de contrôle Fonctions
Un moment de réflexion
Écrire une fonction pour colorer des notes stockées dans une liste
(vert pour les notes supérieures à 10, rouge sinon)
1 def colorier_note(note):
2 couleur = 'red' # couleur rouge par défaut
3 if note > 10:
4 couleur = 'green' # couleur vert si note > 10
5 print(f'<span style="color: {couleur};">{note}</span>')
6
7 notes = [12, 17, 8, 10, 14, 3] # liste de notes
8 for note in notes: # itération sur chaque note de la liste
9 colorier_note(note)
Résultat
<span style="color: green;">12</span>
<span style="color: green;">17</span>
<span style="color: red;">8</span>
<span style="color: red;">10</span>
<span style="color: green;">14</span>
<span style="color: red;">3</span>
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 46 / 47
En résumé
S’entrainer en Python :
I Syntaxe de base (types de données,
opérations, structures de contrôle)
I REPL (Read Evaluate Print Loop,
e.g., le shell interactif Python)
I Exercices progressifs en ligne
Prochain cours : Python avancé
(imports, exceptions, bases de
données)
[Link]
[Link]
[Link]
[Link]
BDW - Base de données et programmation web // Programmation web - Python UCBL Lyon 1 47 / 47