Vous êtes sur la page 1sur 39

PYTHON<<<<<

Python ne permet pas simplement d'afficher de beaux messages sur l'écran : vous pouvez aussi
l'utiliser comme une calculatrice ! En effet, Python est un langage de programmation qui peut être
utilisé pour effectuer des calculs mathématiques. Que ce soit pour ajouter, soustraire, multiplier ou
diviser des nombres, Python peut faire tout cela, et même des opérations mathématiques plus
avancées.

Qu’est-ce qu’une variable ?

 Une variable a un nom et une valeur, comme un carton avec un nom et des choses à
l’intérieur.

 Vous pouvez déclarer une variable avec le nom de la variable (par exemple, livre )
, un signe « égal à » = et la valeur (par exemple, "Gatsby le Magnifique" ). Il se
peut que la valeur nécessite des guillemets avant et après, mais cela dépend du type de
données dont il s’agit (ce que nous traiterons dans le chapitre suivant).

 Nommez une variable de manière claire et descriptive pour rendre le code plus
lisible et faciliter sa compréhension.

 Pour afficher des variables, la f-string est souvent utilisée car elle
permet d'insérer facilement les variables dans la chaîne de caractères à afficher.
Une f-string est une chaîne de caractères précédée d'un f (ou F ), et contenant des
expressions entre accolades {} qui seront évaluées lors de l'exécution du programme.
Voyons sans attendre un exemple !
 nom = "Dupont"
 prenom = "Jean"
 age = 30

 print(f"Bonjour, je m'appelle {prenom} {nom} et j'ai {age} ans.")
Bonjour, je m'appelle Jean Dupont et j'ai 30 ans.

 Un type de données est une catégorie ou une classe d’information dans votre code.

 Il y a de nombreux types de données, mais les plus simples sont les virgules
flottantes (nombres décimaux), les entiers (nombres entiers), les booléens (vrai/faux)
et les chaînes de caractères (texte entre guillemets).

 La fonction type() permet de déterminer le type d’une variable.


out comme sur les nombres dans Excel ou avec une calculatrice, vous pouvez réaliser toutes
sortes d’opérations arithmétiques avec des entiers et des virgules flottantes dans Python.
Voici quelques exemples d’opérateurs arithmétiques que vous pouvez utiliser dans votre
code :

 x + y : la somme de x et y (x plus y).


 x - y : la différence entre x et y (x moins y).
 x * y : le produit de x et y (x fois y).
 x / y : le quotient de x et y (x divisé par y).
 x % y : le reste de x divisé par y.

Qu’est-ce qu’une liste et pourquoi l’utiliser ?


langage_de_programmation = "PYTHON"
>>> langage_de_programmation[2]
"T"
>>> langage_de_programmation[-4]
"T"

Pour la chaîne "Python", vous devez utiliser l’indice "2" ou l’indice inversé "-4" pour accéder
au troisième caractère qui est la lettre "T".

Modifiez les éléments d’une liste


>>> plateformes_sociales[2] = "LinkedIn"
µ
>>> print(plateformes_sociales)

["Facebook", "Instagram", "LinkedIn", "TikTok"]

Ajoutez, retirez et triez les listes


>> plateformes_sociales.append("TikTok")
>>> print(plateformes_sociales)
["Facebook", "Instagram", "Snapchat", "Twitter", "TikTok"]
Pour retirer un élément spécifique d’une liste, vous pouvez utiliser la méthode remove() .
>>> plateformes_sociales.remove("Snapchat")
>>> print(plateformes_sociales)
["Facebook", "Instagram", "Twitter", "TikTok"]
remove() retire uniquement la première instance du terme que vous saisissez.
Pour connaître la longueur de la liste, utilisez la méthode len() .
>>> len(plateformes_sociales)
4

En résumé

 Une liste est un moyen d’enregistrer plusieurs données ensemble.

 Accédez aux éléments de la liste via l’indice, qui commence à 0.

 Modifiez une liste en utilisant les indices et l’opérateur d’affectation = .

 Vous pouvez ajouter, retirer, trier les listes et bien plus, en utilisant les méthodes de
listes.

 Les tuples sont comme des listes, mais sont définis par des parenthèses () à la
place de crochets [] , et ils sont immuables.

Qu’est-ce qu’un dictionnaire ?

 Un dictionnaire est un moyen d’enregistrer des paires clés-valeurs qui représentent


un objet plus grand.

Créez un dictionnaire
nouvelle_campagne = {
"responsable_de_campagne": "Jeanne d'Arc",
"nom_de_campagne": "Campagne nous aimons les chiens",
"date_de_début": "01/01/2020",
"influenceurs_importants": ["@MonAmourDeChien", "@MeilleuresFriandisesPourChiens"]
}
Vous pouvez aussi créer un nouveau dictionnaire avec des accolades vides {} ou la
fonction dict() , et avec des paires clés-valeurs comme indiqué ci-dessous :

taux_de_conversion = {}

taux_de_conversion['facebook'] = 3.4

taux_de_conversion['instagram'] = 1.2

taux_de_conversion = dict()

taux_de_conversion['facebook'] = 3.4

taux_de_conversion['instagram'] = 1.2

Accédez à une valeur dans un dictionnaire

Pour accéder aux différentes valeurs, vous pouvez utiliser la clé pour chacune des paires clés-
valeurs.

>>> nouvelle_campagne['responsable_de_campagne']
"Jeanne d'Arc"
>>> taux_de_conversion['facebook']
3.4

Ajoutez une paire clé-valeur


Pour ajouter une paire clé-valeur à un dictionnaire, ajoutez juste une nouvelle clé dans le
dictionnaire existant. Si la clé existe déjà, vous l’écraserez en définissant une valeur. Le code
suivant crée un dictionnaire appelé infos_labradoodle , et enregistre des informations à
propos du poids et de l’origine des labradoodles, un croisement de chiens.

infos_labradoodle = {

"poids": "13 à 16 kg",

"origine": "États-Unis"

Pour ajouter une nouvelle paire clé-valeur, comme le nom scientifique du labradoodle,
ajoutez simplement :

infos_labradoodle['nom_scientifique'] = "Canis lupus familiaris"


Maintenant, infos_labradoodle renvoie :
>>> print(infos_labradoodle)
{'poids': '13 à 16 kg', 'origine': 'États-Unis',
'nom_scientifique': 'Canis lupus familiaris'}
}
Si vous écrivez infos_labradoodle["poids"] = "45 kg" , la valeur existante sera
écrasée, et le résultat sera donc :
>>> infos_labradoodle["poids"]
"45 kg"

Supprimez une paire clé-valeur


Pour supprimer une paire clé-valeur, vous pouvez utiliser le mot-clé del et la clé que vous
voulez supprimer, ou encore la méthode pop . Pour supprimer la paire clé-valeur
"origine" de la paire clé-valeur , écrivez :
>>> del infos_labradoodle["origine"]
>>> print(infos_labradoodle)
{ "poids": "13 à 16 kg",
"nom_scientifique": "Canis lupus familiaris"}
Certains mots font partie du langage Python, et ne peuvent pas être utilisés comme noms de
variables. Par exemple, del , if et else . Ces mots sont connus comme étant des mots
réservés ou des mots-clés.

Voici encore quelques méthodes couramment utilisées pour manipuler des dictionnaires :

keys() Retourne une vue sur les clés du dictionnaire.


values() Retourne une vue sur les valeurs du dictionnaire.
items() Retourne une vue sur les couples (clé, valeur) du dictionnaire.
get(clé) Retourne la valeur associée à la clé spécifiée. Si la clé n'est pas présente dans le
dictionnaire, retourne la valeur None .
pop(clé) Supprime la clé spécifiée et retourne la valeur associée. Si la clé n'est pas présente
dans le dictionnaire, retourne la valeur None .
clear() Supprime tous les éléments du dictionnaire.

Vérifiez l’existence d’une clé spécifique


Vous pouvez utiliser le mot-clé in pour vérifier si une clé spécifique existe dans un
dictionnaire. Pour faire cela, spécifiez la clé que vous voulez rechercher, écrivez le mot-
clé in et le nom de la variable du dictionnaire que vous examinez. Le résultat renvoie un
booléen qui indique si la clé est dans ce dictionnaire. Par exemple, si vous voulez voir si la
clé « poids » existe dans votre dictionnaire infos_labradoodle , écrivez le code qui suit :
>>> "poids" in infos_labradoodle
True
>>> "race" in infos_labradoodle
False
uestion 1
Correcte
Pour commencer, vous allez créer une variable nom_contact et y assigner le nom de votre
premier contact. Comment stocker le nom d'un contact en utilisant des variables ?
nom_contact = "Jackson"

nom_contact("Jackson")
nom_contact = [Jackson]

nom_contact = {"nom": "Jackson"}


nom_contact = "Jackson" est la bonne réponse, car elle permet de stocker le nom du
contact en utilisant une variable de type chaîne de caractères (string). Les autres options
sont incorrectes, car elles utilisent une fonction, une liste et un dictionnaire pour stocker le
nom du contact, ce qui n'est pas nécessaire pour une simple variable de nom de contact.
Question 2
Correcte
Maintenant que vous avez pu stocker le nom du contact, vous devez également enregistrer les
autres informations, telles que le prénom, le numéro de téléphone et l'adresse e-mail. Pour ce
faire, vous allez utiliser un dictionnaire.
Comment stocker les informations de chaque contact dans un dictionnaire ?

contact_infos = [nom: "Jackson", prenom: "Michael", telephone: "123-456-


7890", email: "j.michael@email.com"]
contact_infos = {"nom": "Jackson", "prenom": "Michael", "telephone": "123-
456-7890", "email": "j.michael@email.com"}

contact_infos = [Jackson, Michael, 123-456-7890, j.michael@email.com]

contact_infos = (nom="Jackson", prenom="Michael", telephone="123-456-7890",


email="j.michael@email.com")
Pour stocker les informations de chaque contact dans un dictionnaire, il faut utiliser la
syntaxe spécifique de création de dictionnaire en Python. Cette syntaxe utilise des accolades
{} pour entourer la liste des paires clé-valeur, séparées par des virgules.
Dans votre cas, chaque contact a un nom, un prénom, un numéro de téléphone et une adresse
e-mail, donc il faut créer un dictionnaire pour chaque contact avec les quatre clés
correspondantes. Les clés sont des chaînes de caractères qui représentent les noms des
informations stockées, et les valeurs sont les données elles-mêmes.
contact_infos = {"nom": "Jackson", "prenom": "Michael", "telephone": "123-456-7890",
"email": "j.michael@email.com"} est donc la bonne réponse.
Question 3
Correcte
Vous hésitez à propos du format de l'adresse e-mail, et il vaut mieux dans ce cas vérifier si
elle correspond à vos informations.
Comment accéder à l’e-mail d’un contact stocké dans le dictionnaire contact_infos ?
contact_infos["email"]

contact_infos."email"

contact_infos.get(email)

contact_infos.email
Pour accéder à une valeur dans un dictionnaire en Python, on utilise la syntaxe
suivante : nom_du_dictionnaire["clé"] . Dans notre cas, la clé que nous voulons
utiliser est email . Ainsi, pour accéder à l'e-mail d'un contact stocké dans le dictionnaire
contact_infos, il faut utiliser la syntaxe contact_infos["email"] .
Question 4
Incorrecte
Oh zut, il y a une erreur avec l'e-mail ! Le véritable e-mail
estjackson.michael@email.com . Vous devez le modifier immédiatement.
Comment modifier l'adresse e-mail d'un contact stocké dans le dictionnaire contact_infos
?

contact_infos["email"] = "jackson.michael@email.com"
Voici la bonne réponse
contact_infos.set("email", "jackson.michael@email.com”)

contact_infos.add("email", "jackson.michael@email.com »)
Réponse : 1) contact_infos["email"] = "jackson.michael@email.com"`
Pour modifier une valeur dans un dictionnaire, il suffit d'utiliser la
syntaxe nom_dictionnaire[nom_cle] = nouvelle_valeur . Dans le cas présent, la clé à
modifier est "email" et la nouvelle valeur est l'adresse e-mail mise à jour. Donc, la réponse
correcte est :
contact_infos[email]="jackson.michael@email.com"

Question 5
Incorrecte
Très bien, vous avez stocké les informations de votre premier contact dans la
variable contact_infos sous la forme d'un dictionnaire. Maintenant, vous devez l'ajouter à
votre carnet de contacts. Donc vous allez commencer par créer une liste nommée contacts
pour stocker l'ensemble des contacts.
Comment créer une liste qu’on assignera à la variable contacts ?

contacts = {}
contacts = create_list()

contacts = list

contacts = []
Voici la bonne réponse
En Python, pour créer une liste, on utilise des crochets [] . Donc, la réponse correcte
est contacts = [] , qui crée une liste vide et la stocke dans la variable contacts. Cette
liste pourra ensuite être remplie avec les informations de nos différents contacts.
Question 6
Correcte
C’est parti ! Il est temps d’ajouter votre premier contact dans la liste.
Comment ajouter un contact stocké dans la variable contact_infos à une liste de contacts
existante ?
contacts.append(contact_infos)

contacts.add(contact_infos)

contacts.insert(contact_infos)

contacts.extend(contact_infos)
Pour ajouter un élément à une liste en Python, on utilise la méthode append() . Cette
méthode permet d'ajouter un élément à la fin de la liste, sans modifier les éléments déjà
existants. La bonne réponse est donc contacts.append(contact_infos) .
Question 7
Incorrecte
Maintenant, vous allez utiliser la fonction print() pour afficher le contenu de la
liste contacts , afin de visualiser votre carnet de contacts.
Que va afficher la fonction print en sortie qui stocke un contact dans la liste contacts ?

{'nom': 'Jackson', 'prenom': 'Michael', 'telephone': '123-456-7890',


'email': 'jackson.michael@email.com’}
[{'nom': 'Jackson', 'prenom': 'Michael', 'telephone': '123-456-7890',
'email': 'jackson.michael@email.com’}]
Voici la bonne réponse
['nom': 'Jackson', 'prenom': 'Michael', 'telephone': '123-456-7890',
'email': 'jackson.michael@email.com’]
En l'occurrence, nous avons une liste de contacts qui contient des dictionnaires représentant
chaque contact. Ainsi, la sortie de la fonction print() sera encadrée par des crochets []
pour représenter la liste. Chaque élément de la liste est un dictionnaire, qui sera lui-même
délimité par des accolades {} . Dans le cas d’une liste ne contenant qu'un seul élément, il n'y
aura qu'une seule paire d'accolades pour représenter ce dictionnaire dans la sortie
du print() . La bonne réponse est donc : [{'nom': 'Jackson', 'prenom': 'Michael',
'telephone': '123-456-7890', 'email': 'jackson.michael@email.com’}]

Question 8
Incorrecte
Votre carnet de contacts est maintenant complet, avec plusieurs contacts ajoutés. Cependant,
vous réalisez qu'un contact qui n'existe plus a été ajouté par erreur. Il est donc nécessaire de
le supprimer.
Comment supprimer un contact d'une liste de contacts ? (Prenez en compte que vous
souhaitez supprimer l'élément contenu dans la variable contact_a_supprimer .)

contacts.remove(contact_a_supprimer)
Voici la bonne réponse
contacts.delete(contact_a_supprimer)

contacts.pop(contact_a_supprimer)

contacts.clear(contact_a_supprimer)
Pour supprimer un élément spécifique d'une liste, on peut utiliser la méthode remove() ,
qui prend comme argument l'élément à supprimer. Cette méthode recherche l'élément dans la
liste et le supprime. Si l'élément n'est pas présent dans la liste, elle renvoie une
erreur ValueError . La bonne réponse et
donc contacts.remove(contact_a_supprimer) .
Question 9
Correcte
Vous souhaitez obtenir une estimation du nombre de contacts présents dans votre carnet
avant de terminer.
Comment compter le nombre total de contacts dans la liste contacts ?

contacts.count()
len(contacts)

contacts.length()
La fonction len() est une fonction intégrée en Python qui permet de renvoyer la taille d'un
objet, c'est-à-dire le nombre d'éléments qu'il contient. Dans le cas de la liste contacts , la
fonction len(contacts) renverra le nombre total de contacts stockés dans cette liste. La
bonne réponse est len(contacts) .

Simplifiez votre code avec les match cases

Le match est une fonctionnalité pour faciliter la comparaison de valeurs à l'aide de motifs. Le
but est de simplifier la syntaxe de certaines structures courantes qui utilisent des blocs if, elif
et else. Le match offre une alternative plus concise et plus lisible.

Découvrons les mots-clés utilisés dans cette nouvelle structure conditionnelle. Le mot-
clé match est utilisé pour indiquer le début d'un bloc de match case, suivi de la variable à
évaluer. Le mot-clé case est utilisé pour vérifier si une valeur donnée correspond à une
condition spécifique dans ce bloc. Le symbole _ est utilisé pour définir une action à
effectuer si aucune condition ne correspond.

Par exemple, si vous voulez tester la valeur d'une variable et exécuter une action différente
pour chaque cas, vous pouvez utiliser le match. Imaginons que vous vouliez exécuter une
action différente selon la valeur de la variable fruit :

fruit = "pomme"

match fruit:

case "pomme":

print("J'aime les pommes !")

case "banane":

print("Je n'aime pas les bananes.")

case "orange":

print("Les oranges sont bonnes pour la santé.")

case _:
print("Je ne connais pas ce fruit.")

En résumé

 Les instructions if/else vous aident à définir certaines conditions quand le code est
exécuté.

 Le mot-clé elif vous permet d’utiliser plusieurs conditions.

 Vous pouvez grouper différentes conditions ensemble avec and , or et not .


 Les opérateurs de comparaison comme < et > vous permettent de comparer
plusieurs variables.

 Le match case permet de simplifier la syntaxe de plusieurs conditions imbriquées.

 Utilisez la boucle for


 La bouclefor est le type de boucle centrale dans Python. Une bouclefor est utilisée
pour itérer sur une séquence. Ça peut être une liste, un tuple, un dictionnaire ou
même une chaîne de caractères. Avec une bouclefor , vous pouvez exécuter le même
code pour chaque élément dans cette séquence.
 Avec Python, c’est très facile de créer des boucles. Si vous voulez afficher tous les
éléments dans une liste, le code ressemblera à ça :
 races_de_chien = ["golden retriever", "chihuahua", "terrier", "carlin"]
 for chien in races_de_chien:
 print(chien)
 Dans ce code, chaque élément dans races_de_chien sera affiché dans le terminal.
chien est un nom de variable qui se met à jour pour être l’élément suivant à chaque
fois que la boucle se répète. Vous pouvez modifier chien en cocorico et il
s’exécutera toujours de la même façon, mais cela n’a pas beaucoup d’intérêt !

Tant que le dernier élément n'est pas atteint la boucle For renvoie des instructions

 Comprenez le fonctionnement de la boucle for


 Vous pouvez faire le même genre de boucle for si vous voulez passer en boucle
chaque caractère d’une chaîne.
 Pour boucler un certain nombre de fois, vous pouvez utiliser la fonction range() .
Elle renverra une séquence de nombres qui vont de 0 à un nombre de fin déterminé.
 Vous n’avez pas encore appris les fonctions, mais ça ne va pas tarder ! Pour l’instant,
vous devez juste savoir qu’on peut saisir un nombre dans la fonction range() , et
qu’elle renvoie une séquence de nombres allant de 0 à ce nombre moins un.
 for x in range(5):
 print(x)
 Ce code affichera 0, 1, 2, 3, 4 en séquence.
 for x in range(100):
 print(f"{x} bouteilles de bières au mur !")
 Les accolades {} ci-dessus prennent n’importe quelle valeur dans la variable x et la
remplacent (n’oubliez pas le “f” au début de la string, qui signifie f
Utilisez la boucle while

La boucle for vous permet d’exécuter du code un nombre spécifique de fois, alors que
la boucle while continue de s’exécuter jusqu’à ce qu’une certaine condition soit remplie.
Dans le chapitre précédent, vous avez découvert des conditions, ou instructions, qui évaluent
si une expression est vraie ou fausse. C’est la même chose ici : le code dans l’instruction
while s’exécute jusqu’à ce que la condition devienne fausse.
L’extrait de code ci-dessous vérifie la capacité actuelle, et l’augmente d’une unité jusqu’à ce
que la capacité maximale soit atteinte ( += 1 augmente la valeur actuelle de 1).

capacite_maximale = 10

capacite_actuelle = 3

while capacite_actuelle < capacite_maximale:

capacite_actuelle += 1

Utilisez les mot-clés break et continue


Il est courant d'utiliser des boucles pour répéter une série d'instructions plusieurs fois. Parfois,
il peut être utile d'interrompre ou de sauter une itération dans la boucle. C'est là que les
instructions break et continue entrent en jeu.
L'instruction break permet de sortir d'une boucle prématurément. Elle est souvent utilisée
lorsqu'une condition est rencontrée, et que l'on souhaite arrêter la boucle avant qu'elle ne se
termine normalement. Voici un exemple :

for i in range(10):

if i == 5:

break

print(i)
Dans cet exemple, la boucle for va itérer de 0 à 9, mais lorsque la valeur de i atteint 5,
l'instruction break est exécutée et la boucle est interrompue. Le programme affichera les
valeurs de 0 à 4, mais pas 5, car la boucle a été interrompue grâce au mot-clé break .

En résumé

 Les boucles vous permettent de répéter des tâches facilement ou d’exécuter du code
pour chaque élément dans une liste.

 Une boucle for permet de répéter du code un certain nombre de fois.


 Une boucle while permet de répéter du code jusqu’à ce qu’une certaine condition
soit remplie.
 L'instruction break est utilisée pour interrompre une boucle avant qu'elle ne se
termine normalement.
 L'instruction continue est utilisée pour sauter une itération de boucle et passer à
l'itération suivante.

Qu’est-ce qu’une fonction ?

Une fonction est un bloc de code avec un but spécifique, auquel vous pouvez donner un nom.
Quand vous appelez cette fonction, vous exécutez le code qu’elle contient. Les fonctions
vous laissent saisir des paramètres pour exécuter le même code sur différentes valeurs.

Il y a différents types de fonctions dans Python :

1. Les fonctions intégrées fournies avec Python.

2. Les fonctions définies par l’utilisateur que les développeurs (vous !) créent.

Utilisez une fonction sans paramètres

Une fonction sans paramètres et sans valeur de retour est la fonction la plus basique que l'on
puisse créer en programmation. Elle est assimilable à un bloc de code à lancer quand cela est
nécessaire. Elle est utile pour encapsuler un bloc de code répétitif, et faciliter sa réutilisation
dans différents endroits du programme.

def afficher_message():

print("Bonjour, comment ça va ?")


Cette fonction s'appelle afficher_message et ne prend aucun paramètre en entrée, car elle
est définie avec des parenthèses vides. Elle n'a pas de valeur de retour car elle se contente
d'afficher un message à l'écran en utilisant la fonction print() .

Pour appeler cette fonction, il suffit d'utiliser son nom et les parenthèses vides, car il n’y a
pas de paramètres :

afficher_message()

En utilisant cette fonction dans votre code, vous pouvez facilement afficher un message de
salutation, comme `"Bonjour, comment ça va ?"`, autant de fois que nécessaire, simplement
en l'appelant dans le code.

Utilisez une fonction avec paramètres

On peut également créer une fonction avec des paramètres, qui permettent de transmettre
des valeurs à la fonction. Les paramètres sont simplement listés entre parenthèses, séparés par
des virgules. Voici un exemple d'une fonction qui prend deux paramètres, un nom et un
prénom, et qui les affiche ensuite.

def afficher_nom_prenom(nom, prenom):


print("Nom :", nom)

print("Prénom :", prenom)

Pour appeler cette fonction, il faut préciser les valeurs à transmettre aux paramètres, soit deux
chaînes de caractères.

afficher_nom_prenom("Dupont", "Jean")

La fonction affichera :

Nom : Dupont
Prénom : Jean

Utilisez une fonction avec une valeur de retour

Une fonction avec une valeur de retour est une fonction qui peut prendre des paramètres et
effectuer des opérations, mais qui renvoie également une valeur à la fin. Cette valeur peut
être utilisée à d'autres endroits du programme. Par exemple, si nous avons une fonction qui
calcule la somme de deux nombres, nous pouvons stocker le résultat dans une variable pour
l'utiliser plus tard dans notre programme.

ef calculer_somme(a, b):

resultat = a + b

return resultat
Dans cet exemple, la fonction prend deux nombres en paramètres, les additionne,
puis renvoie le résultat de l'addition. Le résultat est stocké dans la variable resultat et est
renvoyé à l'aide du mot-clé return .

Pour utiliser la valeur de retour de la fonction, nous pouvons stocker le résultat dans une
variable, comme ceci :

somme = calculer_somme(2, 3)

print(somme) #Ce print affichera 5


Dans ce cas, la variable somme contiendra la valeur renvoyée par la fonction, qui est le
résultat de l'addition de 2 et 3, soit 5. Cette valeur peut ensuite être utilisée à d'autres endroits
du programme, si besoin.

uand utiliser les fonctions

Quand on écrit beaucoup de code, on s’y perd et on fait des erreurs facilement entre les
différentes fonctionnalités en cours. Les fonctions vous aident à séparer le code en sections
plus petites. Comme ça, vous gardez le fil sur ce que chaque partie est censée faire.
Vous en sortirez avec un code mieux écrit, mieux structuré et plus lisible.

uestion 1
Incorrecte
Pour commencer, vous devrez créer une fonction qui affichera un message de bienvenue à
l'utilisateur.
Quelle fonction permet d'afficher un message de bienvenue à l'utilisateur ?

def afficher_message_accueil:

print("Bienvenue sur la mini-calculatrice !")

function afficher_message_accueil():

print("Bienvenue sur la mini-calculatrice !")

def afficher_message_accueil():

print("Bienvenue sur la mini-calculatrice !")

Voici la bonne réponse

function afficher_message_accueil()

print("Bienvenue sur la mini-calculatrice !")

Il n'y a qu'une seule réponse qui respecte la syntaxe correcte pour une fonction. La fonction
commence par le mot-clé def , suivi du nom de la fonction et des parenthèses vides, puis se
termine par un deux-points. Ensuite, le code de la fonction est indenté sous cette ligne. La
fonction afficher_message_accueil() affiche le message de bienvenue à l'utilisateur
grâce à la fonction print() .
Le mot-clé function n’existe pas dans Python.
Question 2
Correcte
Quelle structure conditionnelle permet d’éviter la division par zéro, et d’afficher un message
dans ce cas ?
if denominator == 0:

return numerator / denominator

else:

print("Erreur : division par zéro")

if denominator != 0:

print("Erreur : division par zéro")

else:

return numerator / denominator

if denominator != 0:

return numerator / denominator

else:

print("Erreur : division par zéro")

La structure conditionnelle doit vérifier si le dénominateur est différent de zéro. Si c'est le


cas, alors la fonction retourne la division de numerator par denominator . Sinon, un
message d'erreur est affiché. Cela permet d'éviter la division par zéro qui provoquerait une
erreur.
Question 3
Correcte
Quelle autre solution permet d'éviter cette erreur en utilisant la gestion d'exception ?

match

si/sinon

return
try/except
En utilisant la gestion d'exception, on peut utiliser un bloc try/except pour gérer l'erreur
de division par zéro.
try:

result = numerator / denominator

return result

except ZeroDivisionError:

print("Erreur : division par zéro")

Dans ce cas, si l'utilisateur essaie de diviser par zéro, une exception ZeroDivisionError
sera levée, et le programme exécutera le bloc except pour gérer cette erreur et afficher un
message approprié.
Question 4
Incorrecte
Il faut maintenant créer une fonction qui encapsule tout ce bloc de code.
Quelles fonctions correspondent à la division entre deux nombres ?
Attention, plusieurs réponses sont possibles.

def division(numerator, denominateur):

try:

result = numerator / denominateur

return result

except ZeroDivisionError:

print("Erreur : division par zéro")

Réponse manquante

def division(numerator, denominator):

if denominator != 0:

return numerator / denominator

else:
print("Erreur : division par zéro")

Réponse manquante

def division():

try:

result = numerator / denominateur

return result

except ZeroDivisionError:

print("Erreur : division par zéro")

def division(numerator, denominateur):

try:

result = numerator / denominateur

return result

except ZeroDivisionError:

print("Erreur : division par zéro")

Pour définir une fonction en Python, il faut utiliser le mot-clé def suivi du nom de la
fonction et de ses paramètres entre parenthèses. Dans le cas de la fonction division, les deux
paramètres sont numerator et denominator . Il est important de bien indenter le bloc de
code correspondant à la fonction. En ce qui concerne la fonction division , il existe deux
façons de gérer le cas où le dénominateur est égal à zéro : soit avec une structure
conditionnelle if/else , soit avec la gestion d'exception try/except .
Question 5
Correcte
Vous devez maintenant demander à l’utilisateur d’entrer les nombres qu’on souhaite
additionner, soustraire, multiplier ou diviser. Il faut donc créer une fonction qui permette de
récupérer ces deux nombres.
Quelle fonction permet de récupérer les nombres saisis par l'utilisateur ?

def saisir_deux_nombres():
num1 = float(input("Entrez le premier nombre : "))

num2 = float(input("Entrez le deuxième nombre : "))

return num1, return num2

def saisir_deux_nombres():

num1 = float(input("Entrez le premier nombre : "))

num2 = float(input("Entrez le deuxième nombre : "))

return num1, num2

def saisir_deux_nombres():

num1 = float(input("Entrez le premier nombre : "))

num2 = float(input("Entrez le deuxième nombre : "))

return num1

def saisir_deux_nombres():

num1 = float(input("Entrez le premier nombre : "))

num2 = float(input("Entrez le deuxième nombre : "))

La fonction ne nécessite aucun paramètre, les parenthèses doivent donc être laissées vides.
Pour récupérer les nombres, la fonction input() est utilisée deux fois, en veillant à les
convertir en nombres à virgule flottante. Les nombres sont ensuite renvoyés séparés par une
virgule à l'aide du mot-clé return . Il est important de noter que les deux nombres doivent
être retournés, et qu'un seul return est nécessaire.
Question 6
Incorrecte
La fonction suivante permet de demander à l’utilisateur quelle opération il souhaite
effectuer :

def afficher_menu():

print("=== MENU ===")


print("1. Addition")

print("2. Soustraction")

print("3. Multiplication")

print("4. Division")

choix = input("Entrez votre choix (1-4) : ")

return choix

Cependant, cette fonction contient une petite erreur logique : que se passe-t-il si l'utilisateur
entre un caractère autre que 1, 2, 3 ou 4 ? Il est donc nécessaire d'ajouter un mécanisme qui
permette de demander à l'utilisateur de répéter l'opération jusqu'à ce que le caractère entré
corresponde aux options disponibles dans le programme. Vous allez donc ajouter une boucle
à l’intérieur de la fonction.
Quelle boucle permet de s’assurer de la saisie de l’utilisateur ?

while choix in ["1", "2", "3", "4"]:

choix = input("Choix invalide. Entrez votre choix (1-4) : ")

for i in range("1", "2", "3", "4"):

choix = input("Choix invalide. Entrez votre choix (1-4) : ")

for choix is ok:

choix = input("Choix invalide. Entrez votre choix (1-4) : ")

while choix not in ["1", "2", "3", "4"]:

choix = input("Choix invalide. Entrez votre choix (1-4) : ")

Voici la bonne réponse


La boucle doit continuer à demander à l'utilisateur de saisir un choix tant que ce choix n'est
pas inclus dans la liste [“1” , "2", "3", "4"] . L'utilisateur est obligé de choisir un des
quatre choix proposés. Ainsi, la boucle while est la seule boucle adaptée, car le nombre
d’itérations n’est pas connu à l’avance, et continue tant que la condition n’est pas valide. Ici,
tant que l’utilisateur n’entre pas le bon caractère.
Question 7
Correcte
Maintenant qu’on a récupéré le choix de l’utilisateur, vous devez mettre en place une
structure qui permette de lancer le calcul demandé par l’utilisateur, et de récupérer le résultat.
Quelle structure conditionnelle permet de lancer la bonne fonction adéquate en fonction du
choix de l’utilisateur ? (Le choix de l’utilisateur est contenu dans la variable choix .)

match choix:

case '1':

result = addition(num1, num2)

case '2':

result = soustraction(num1, num2)

case '3':

result = multiplication(num1, num2)

case '4':

result = division(num1, num2)

case _:

print("Choix invalide.")

match choix:

'1':

result = addition(num1, num2)

‘2’:
result = soustraction(num1, num2)

'3':

result = multiplication(num1, num2)

'4':

result = division(num1, num2)

_:

print("Choix invalide.")

match choix:

case '1'

result = addition(num1, num2)

case '2'

result = soustraction(num1, num2)

case '3'

result = multiplication(num1, num2)

case '4'

result = division(num1, num2)

case _

print("Choix invalide.")

Dans ce cas, il faut utiliser le match case, qui est beaucoup plus simple qu’une structure
conditionnelle if/else/elif . Dans le match case, l’expression à évaluer est placée après
le mot-clé match , et chaque cas possible est défini avec le mot-clé case . Le bloc de code
associé à chaque cas est exécuté si la valeur de l'expression correspond au cas
correspondant. Si aucun cas ne correspond, un cas par défaut (généralement noté _ ) peut
être utilisé pour exécuter un bloc de code par défaut.
Question 8
Incorrecte
On peut maintenant afficher le résultat avec un simple print, print("Le résultat est :
", result) .
J’y pense ! Il reste une dernière fonctionnalité intéressante que vous pouvez ajouter. Il s’agit
de calculer la moyenne de n , nombre que l’utilisateur aura préalablement saisi dans le
programme. Considérez que l’ensemble des nombres est stocké dans la liste nombres . Vous
allez devoir utiliser une boucle pour calculer la moyenne de tous les nombres stockés dans
cette liste.
Comment calculer la moyenne ?
Pour calculer la moyenne de plusieurs nombres, vous devez les ajouter tous ensemble, puis
diviser la somme par le nombre total de nombres.
Quelle fonction permet de calculer la moyenne des nombres stockés dans la liste nombres ?

def calculer_moyenne(nombres):

total = 0

while nombre in nombres:

total += nombre

moyenne = total / len(nombres)

return moyenne

def calculer_moyenne(nombres):

total = 0

for nombre in nombres:

total += nombre

moyenne = total / len(nombres)

return moyenne

def calculer_moyenne(nombres):

total = 0
for nombre in nombres:

total += nombre

moyenne = total / len(nombres)

return moyenne

Voici la bonne réponse

def calculer_moyenne(nombres):

total = 0

for nombres in nombre:

total += nombre

moyenne = total / len(nombres)

return moyenne

Comme nous avons une liste et que nous connaissons le nombre d'éléments contenus dans la
liste, il faut donc utiliser la boucle for . Pour itérer sur la liste nombres , il faut utiliser la
syntaxe for nombre in nombres : et ajouter à la variable total initialisée à 0 chaque
nombre de cette liste. Une fois la boucle terminée, il faut diviser le nombre contenu dans la
variable total par le nombre d'éléments dans la liste pour obtenir la moyenne.
Correction du code complet :

def print_welcome_message():

print("Bienvenue sur la mini-calculatrice !")

def input_two_number():

num1 = float(input("Entrez le premier nombre : "))

num2 = float(input("Entrez le deuxième nombre : "))

return num1, num2

def print_menu_and_get_choice():
print("=== MENU ===")

print("1. Addition")

print("2. Soustraction")

print("3. Multiplication")

print("4. Division")

user_choice = input("Entrez votre choix (1-4) : ")

while user_choice not in ["1", "2", "3", "4"]:

user_choice = input("Choix invalide. Entrez votre choix (1-4) : ")

return user_choice

def sum(a, b):

return a + b

def substraction(a, b):

return a - b

def multiplication(a, b):

return a * b

def division(a, b):


if b != 0:

return a / b

else:

print("Erreur : division par zéro")

def run_calculation(user_choice):

num1, num2 = input_two_number()

match user_choice:

case '1':

result = sum(num1, num2)

case '2':

result = substraction(num1, num2)

case '3':

result = multiplication(num1, num2)

case '4':

result = division(num1, num2)

case _:

print("Choix invalide.")

return result

if __name__ == '__main__':

print_welcome_message()

user_choice = print_menu_and_get_choice()

result = run_calculation(user_choice)
print(result)

Question 1
Incorrecte
Pour commencer, vous devrez créer une fonction qui affichera un message de bienvenue à
l'utilisateur.
Quelle fonction permet d'afficher un message de bienvenue à l'utilisateur ?

def afficher_message_accueil:

print("Bienvenue sur la mini-calculatrice !")

function afficher_message_accueil():

print("Bienvenue sur la mini-calculatrice !")

def afficher_message_accueil():

print("Bienvenue sur la mini-calculatrice !")

Voici la bonne réponse

function afficher_message_accueil()

print("Bienvenue sur la mini-calculatrice !")

Il n'y a qu'une seule réponse qui respecte la syntaxe correcte pour une fonction. La fonction
commence par le mot-clé def , suivi du nom de la fonction et des parenthèses vides, puis se
termine par un deux-points. Ensuite, le code de la fonction est indenté sous cette ligne. La
fonction afficher_message_accueil() affiche le message de bienvenue à l'utilisateur
grâce à la fonction print() .
Le mot-clé function n’existe pas dans Python.
Question 2
Correcte
Quelle structure conditionnelle permet d’éviter la division par zéro, et d’afficher un message
dans ce cas ?

if denominator == 0:
return numerator / denominator

else:

print("Erreur : division par zéro")

if denominator != 0:

print("Erreur : division par zéro")

else:

return numerator / denominator

if denominator != 0:

return numerator / denominator

else:

print("Erreur : division par zéro")

La structure conditionnelle doit vérifier si le dénominateur est différent de zéro. Si c'est le


cas, alors la fonction retourne la division de numerator par denominator . Sinon, un
message d'erreur est affiché. Cela permet d'éviter la division par zéro qui provoquerait une
erreur.
Question 3
Correcte
Quelle autre solution permet d'éviter cette erreur en utilisant la gestion d'exception ?

match

si/sinon

return
try/except
En utilisant la gestion d'exception, on peut utiliser un bloc try/except pour gérer l'erreur
de division par zéro.

try:

result = numerator / denominator


return result

except ZeroDivisionError:

print("Erreur : division par zéro")

Dans ce cas, si l'utilisateur essaie de diviser par zéro, une exception ZeroDivisionError
sera levée, et le programme exécutera le bloc except pour gérer cette erreur et afficher un
message approprié.
Question 4
Incorrecte
Il faut maintenant créer une fonction qui encapsule tout ce bloc de code.
Quelles fonctions correspondent à la division entre deux nombres ?
Attention, plusieurs réponses sont possibles.

def division(numerator, denominateur):

try:

result = numerator / denominateur

return result

except ZeroDivisionError:

print("Erreur : division par zéro")

Réponse manquante

def division(numerator, denominator):

if denominator != 0:

return numerator / denominator

else:

print("Erreur : division par zéro")

Réponse manquante

def division():

try:
result = numerator / denominateur

return result

except ZeroDivisionError:

print("Erreur : division par zéro")

def division(numerator, denominateur):

try:

result = numerator / denominateur

return result

except ZeroDivisionError:

print("Erreur : division par zéro")

Pour définir une fonction en Python, il faut utiliser le mot-clé def suivi du nom de la
fonction et de ses paramètres entre parenthèses. Dans le cas de la fonction division, les deux
paramètres sont numerator et denominator . Il est important de bien indenter le bloc de
code correspondant à la fonction. En ce qui concerne la fonction division , il existe deux
façons de gérer le cas où le dénominateur est égal à zéro : soit avec une structure
conditionnelle if/else , soit avec la gestion d'exception try/except .
Question 5
Correcte
Vous devez maintenant demander à l’utilisateur d’entrer les nombres qu’on souhaite
additionner, soustraire, multiplier ou diviser. Il faut donc créer une fonction qui permette de
récupérer ces deux nombres.
Quelle fonction permet de récupérer les nombres saisis par l'utilisateur ?

def saisir_deux_nombres():

num1 = float(input("Entrez le premier nombre : "))

num2 = float(input("Entrez le deuxième nombre : "))

return num1, return num2

def saisir_deux_nombres():
num1 = float(input("Entrez le premier nombre : "))

num2 = float(input("Entrez le deuxième nombre : "))

return num1, num2

def saisir_deux_nombres():

num1 = float(input("Entrez le premier nombre : "))

num2 = float(input("Entrez le deuxième nombre : "))

return num1

def saisir_deux_nombres():

num1 = float(input("Entrez le premier nombre : "))

num2 = float(input("Entrez le deuxième nombre : "))

La fonction ne nécessite aucun paramètre, les parenthèses doivent donc être laissées vides.
Pour récupérer les nombres, la fonction input() est utilisée deux fois, en veillant à les
convertir en nombres à virgule flottante. Les nombres sont ensuite renvoyés séparés par une
virgule à l'aide du mot-clé return . Il est important de noter que les deux nombres doivent
être retournés, et qu'un seul return est nécessaire.
Question 6
Incorrecte
La fonction suivante permet de demander à l’utilisateur quelle opération il souhaite
effectuer :

def afficher_menu():

print("=== MENU ===")

print("1. Addition")

print("2. Soustraction")

print("3. Multiplication")

print("4. Division")
choix = input("Entrez votre choix (1-4) : ")

return choix

Cependant, cette fonction contient une petite erreur logique : que se passe-t-il si l'utilisateur
entre un caractère autre que 1, 2, 3 ou 4 ? Il est donc nécessaire d'ajouter un mécanisme qui
permette de demander à l'utilisateur de répéter l'opération jusqu'à ce que le caractère entré
corresponde aux options disponibles dans le programme. Vous allez donc ajouter une boucle
à l’intérieur de la fonction.
Quelle boucle permet de s’assurer de la saisie de l’utilisateur ?

while choix in ["1", "2", "3", "4"]:

choix = input("Choix invalide. Entrez votre choix (1-4) : ")

for i in range("1", "2", "3", "4"):

choix = input("Choix invalide. Entrez votre choix (1-4) : ")

for choix is ok:

choix = input("Choix invalide. Entrez votre choix (1-4) : ")

while choix not in ["1", "2", "3", "4"]:

choix = input("Choix invalide. Entrez votre choix (1-4) : ")

Voici la bonne réponse


La boucle doit continuer à demander à l'utilisateur de saisir un choix tant que ce choix n'est
pas inclus dans la liste [“1” , "2", "3", "4"] . L'utilisateur est obligé de choisir un des
quatre choix proposés. Ainsi, la boucle while est la seule boucle adaptée, car le nombre
d’itérations n’est pas connu à l’avance, et continue tant que la condition n’est pas valide. Ici,
tant que l’utilisateur n’entre pas le bon caractère.
Question 7
Correcte
Maintenant qu’on a récupéré le choix de l’utilisateur, vous devez mettre en place une
structure qui permette de lancer le calcul demandé par l’utilisateur, et de récupérer le résultat.
Quelle structure conditionnelle permet de lancer la bonne fonction adéquate en fonction du
choix de l’utilisateur ? (Le choix de l’utilisateur est contenu dans la variable choix .)

match choix:

case '1':

result = addition(num1, num2)

case '2':

result = soustraction(num1, num2)

case '3':

result = multiplication(num1, num2)

case '4':

result = division(num1, num2)

case _:

print("Choix invalide.")

match choix:

'1':

result = addition(num1, num2)

‘2’:

result = soustraction(num1, num2)

'3':

result = multiplication(num1, num2)

'4':

result = division(num1, num2)

_:
print("Choix invalide.")

match choix:

case '1'

result = addition(num1, num2)

case '2'

result = soustraction(num1, num2)

case '3'

result = multiplication(num1, num2)

case '4'

result = division(num1, num2)

case _

print("Choix invalide.")

Dans ce cas, il faut utiliser le match case, qui est beaucoup plus simple qu’une structure
conditionnelle if/else/elif . Dans le match case, l’expression à évaluer est placée après
le mot-clé match , et chaque cas possible est défini avec le mot-clé case . Le bloc de code
associé à chaque cas est exécuté si la valeur de l'expression correspond au cas
correspondant. Si aucun cas ne correspond, un cas par défaut (généralement noté _ ) peut
être utilisé pour exécuter un bloc de code par défaut.
Question 8
Incorrecte
On peut maintenant afficher le résultat avec un simple print, print("Le résultat est :
", result) .
J’y pense ! Il reste une dernière fonctionnalité intéressante que vous pouvez ajouter. Il s’agit
de calculer la moyenne de n , nombre que l’utilisateur aura préalablement saisi dans le
programme. Considérez que l’ensemble des nombres est stocké dans la liste nombres . Vous
allez devoir utiliser une boucle pour calculer la moyenne de tous les nombres stockés dans
cette liste.
Comment calculer la moyenne ?
Pour calculer la moyenne de plusieurs nombres, vous devez les ajouter tous ensemble, puis
diviser la somme par le nombre total de nombres.
Quelle fonction permet de calculer la moyenne des nombres stockés dans la liste nombres ?

def calculer_moyenne(nombres):

total = 0

while nombre in nombres:

total += nombre

moyenne = total / len(nombres)

return moyenne

def calculer_moyenne(nombres):

total = 0

for nombre in nombres:

total += nombre

moyenne = total / len(nombres)

return moyenne

def calculer_moyenne(nombres):

total = 0

for nombre in nombres:

total += nombre

moyenne = total / len(nombres)

return moyenne

Voici la bonne réponse

def calculer_moyenne(nombres):
total = 0

for nombres in nombre:

total += nombre

moyenne = total / len(nombres)

return moyenne

Comme nous avons une liste et que nous connaissons le nombre d'éléments contenus dans la
liste, il faut donc utiliser la boucle for . Pour itérer sur la liste nombres , il faut utiliser la
syntaxe for nombre in nombres : et ajouter à la variable total initialisée à 0 chaque
nombre de cette liste. Une fois la boucle terminée, il faut diviser le nombre contenu dans la
variable total par le nombre d'éléments dans la liste pour obtenir la moyenne.
Correction du code complet :

def print_welcome_message():

print("Bienvenue sur la mini-calculatrice !")

def input_two_number():

num1 = float(input("Entrez le premier nombre : "))

num2 = float(input("Entrez le deuxième nombre : "))

return num1, num2

def print_menu_and_get_choice():

print("=== MENU ===")

print("1. Addition")

print("2. Soustraction")

print("3. Multiplication")

print("4. Division")
user_choice = input("Entrez votre choix (1-4) : ")

while user_choice not in ["1", "2", "3", "4"]:

user_choice = input("Choix invalide. Entrez votre choix (1-4) : ")

return user_choice

def sum(a, b):

return a + b

def substraction(a, b):

return a - b

def multiplication(a, b):

return a * b

def division(a, b):

if b != 0:

return a / b

else:

print("Erreur : division par zéro")

def run_calculation(user_choice):
num1, num2 = input_two_number()

match user_choice:

case '1':

result = sum(num1, num2)

case '2':

result = substraction(num1, num2)

case '3':

result = multiplication(num1, num2)

case '4':

Vous aimerez peut-être aussi