0% ont trouvé ce document utile (0 vote)
2 vues58 pages

Web Python Bases

Ce document présente un cours sur la programmation web avec Python, axé sur la création d'un site sur les séries. Il couvre les bases de Python, y compris la syntaxe, les types de données, et les bonnes pratiques de programmation. Le cours insiste sur l'importance de Python pour le développement web dynamique et la manipulation de bases de données.
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues58 pages

Web Python Bases

Ce document présente un cours sur la programmation web avec Python, axé sur la création d'un site sur les séries. Il couvre les bases de Python, y compris la syntaxe, les types de données, et les bonnes pratiques de programmation. Le cours insiste sur l'importance de Python pour le développement web dynamique et la manipulation de bases de données.
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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

Vous aimerez peut-être aussi