Python
Master 1
Séance 2
Souleymane BAH
bsouleymane@[Link]
Plan de la séance
• Révision cours passé
• Contrôle du devoir de maison
• PEP 8
• Opérateurs
• Conditions
• Boucles
lundi 7 août 2023 2
Révision cours passé
1. Python :
• de bas niveau ou de haut niveau ?
• interprété ou compilé ?
• monoplateforme ou multiplateforme ?
2. Python 2 vs Python 3 ?
3. ; et {} ? Pourquoi ?
4. Utilisation
5. Types primitifs ?
6. Types complexes ?
lundi 7 août 2023 3
Contrôle du devoir de maison
• Créez le dictionnaire professeur ayant la structure suivante
• Nom : BAH
• Prénom : Souleymane
• Matières : Python, IA
• Ajoutez la matière Linux au dictionnaire
• NB : chaque matière est un élément distinct
lundi 7 août 2023 4
PEP 8
Python Enhancement Proposal
• “Code is read much more often than it is written”, Guido van Rossum
• Conventions de nommage : noms significatifs
• Noms de variables, fonctions, modules : minuscules + underscores
• Exemples : ma_variable, ma_fonction, mon_module.py
• Noms de constantes : MAJUSCULES + underscores
• Exemple : MA_CONSTANTE
• Noms de package : minuscules + underscores
• Exemple : monpackage
• TODO LATER
• Disposition du code
• Indentation
• Commentaires
• Espace blanc
• Pour aller plus loin : [Link]
lundi 7 août 2023 5
Opérateurs 1/3
• Somme : x + y Pratique
• Différence : x – y 1. x = 13
• Multiplication : x * y 2. y = 5
• Division : x / y 3. somme = x + y
• Partie entière : x // y 4. print(somme)
• Reste : x % y 5. Faire de même pour les autres
• Puissance : x ** y opérateurs
6. NB : PEP 8 et confusion
y = x**2 + 5 vs y = x ** 2 + 5
z = (x+y) * (x-y) vs z = (x + y) * (x - y)
lundi 7 août 2023 6
Opérateurs 2/3
• Obtention infos : Pratique
• String : nom = input('Entrez nom : ') 1. Demander la saisie des éléments
• Integer : x = int(input('Entrez entier : ')) à gauche puis afficher à chaque
• Float : y = float(input('Entrez décimal : ')) fois le type
• Boolean : z = bool(input('Entrez booléen : '))
• Chaîne vide False, tout autre True
2. Ecrire un code qui demande le
• Utilisez l’affectation plutôt nom, puis le prénom et affiche le
message suivant (2 façons) :
Bienvenue Prénom NOM
lundi 7 août 2023 7
Opérateurs 3/3
TP 2 : Ma première calculatrice sous Python
• Créer une calculatrice :
1. [Link] : demande deux nombres puis affiche leur somme
2. [Link] : demande deux nombres puis affiche leur différence
3. [Link] : demande deux nombres puis affiche leur produit
4. [Link] : demande deux nombres puis affiche le résultat de la division du 1er
par le 2ème
5. [Link] : demande deux nombres puis affiche le reste de la division du 1er
par le 2ème
lundi 7 août 2023 8
Conditions 1/2 • On peut associer plusieurs conditions avec les opérateurs
logiques :
• ET : and ; OU : or ; NON : not
if condition1: • PRATIQUE
instruction_1 • x = True
instruction_2 • y = False
… • x and y
• x or y
elif condition2: • not x
instruction_3
instruction_4 • Pour comparer des nombres :
… • égalité : x == y (différent de =)
… • non égalité : x != y
• inférieur : x < y ; supérieur : x > y
else: • inférieur ou égal : x <= y ; supérieur ou égal : x >= y
instruction_n
instruction_n+1 • NB : PEP 8 et espaces blancs
… • 4 espaces consécutifs au lieu de tabulation
• Notepad++ : Paramètres Préférences Langages Python
lundi 7 août 2023 Cocher Insérer espaces Taille = 4 9
Conditions 2/2
TP 3 : ma calculatrice améliorée
1. Demander le premier nombre
2. Demander le second nombre
3. Modifier la calculatrice pour qu’elle demande dans un menu de
choisir le type d’opération à effectuer : addition, différence,
multiplication, division, modulo, comparaison (égal, plus petit ou
plus grand)
4. Traiter le cas où l’utilisateur a fait un mauvais choix de menu
5. Afficher le résultat de l’opération ainsi effectuée
lundi 7 août 2023 10
Boucles 1/3
for Pratique : [Link]
1. Créer une liste de matières :
• Répéter un nombre de fois connu par avance Python, IA, Réseaux, Linux
for élément in séquence: 2. Afficher à l’aide de la boucle for
comme ci-après :
instruction_1 • Matière : Python
instruction_2 • Matière : IA
… • …
instruction_n 3. Afficher une séquence de 0 à 5
(range)
• séquence : liste, tuple, dictionnaire, string ou range 4. Afficher une séquence de 1 à 15
• range(n) # séquence de 0 à n - 1 5. Afficher une séquence de 1 à 15 par
• range(m, n) # séquence de m à n – 1 pas de 2
• range(m, n, i) # par pas de i (+/-) 6. Afficher une séquence de 15 à 1 par
pas de -2
lundi 7 août 2023 11
Boucles 2/3
while NB : PEP 8 et confusion
• Répéter un nombre de fois • while x>5 and x%2==0:
jusqu’à condition remplie • while x > 5 and x % 2 == 0:
while condition:
instruction_1 Pratique : [Link]
instruction_2 1. Demander d’entrer un nombre
… entier pair tant que le nombre
instruction_n entré n’est pas pair (penser au
• Faire attention aux boucles %)
infinies
lundi 7 août 2023 12
Boucles 3/3
TP 4 : Ma calculatrice complète
Modifier le comportement de ma calculatrice améliorée (TP 3) pour
continuer à demander le choix du menu tant que l’utilisateur fait un
mauvais choix de menu
NB : Penser aux opérateurs logiques
lundi 7 août 2023 13
Récapitulatif de la séance
• PEP 8
• Opérateurs
• Conditions
• Boucles
• REPRENDRE LE CODE ET SE FAIRE AIDER AU BESOIN
lundi 7 août 2023 14
Questions ?
Devoir de maison
• Ecrire un code qui authentifie un utilisateur
1. Stocker des paires utilisateurs/mots de passe dans un
dictionnaire
2. Demander le nom d’utilisateur puis le mot de passe
3. Vérifier que le nom d’utilisateur correspond au mot de passe
4. Si oui, afficher : "Bienvenue nom_d_utilisateur"
5. Sinon,
1. afficher : "Connexion refusée"
2. faire une boucle jusqu’à ce que la connexion soit acceptée
lundi 7 août 2023 16