Examen Python 02

EXAMEN EN PYTHON : SUJET 02/XX

PANDACODEUR.COM

Examinateur : Mr JoëlYk  Durée : 2h00  Document et machines interdits. Examen Corrige Langage Python

 

Questions de Cours : 5pts

  1. Qu'est-ce qu'un identificateur en Python ? Donnez un exemple d'identificateur valide.
  2. Quelle est la différence entre une liste et un tuple en Python ? Dans quelles situations devriez-vous utiliser l'un plutôt que l'autre ?
  3. Qu'est-ce qu'une fonction en Python ? Comment définissez-vous et utilisez-vous une fonction en Python ?
  4. Qu'est-ce qu'un module en Python ? Comment pouvez-vous importer un module dans un programme Python ?
  5. Qu'est-ce que l'indentation en Python ? Pourquoi est-elle importante ? Comment pouvez-vous contrôler l'indentation dans votre code Python ?

Problème : Gestion des commandes de gâteaux 15pts

Mr Joël_Yk propriétaire d'une boutique de gâteaux souhaite un programme Python pour gérer les commandes des clients. Le programme doit être capable de suivre les commandes, d'afficher le nombre total de gâteaux commandés et de calculer le montant total à payer. Les informations suivantes sont nécessaires pour chaque commande : nom du client, type de gâteau commandé, quantité commandée, prix unitaire.

Questions :

  1. Définissez une liste (nommée "gateaux") contenant les informations sur les types de gâteaux disponibles dans la boutique. Chaque élément de la liste doit être un tuple contenant le nom du gâteau et son prix unitaire.
  2. Définissez une fonction (nommée "afficher_gateaux") qui prend en argument la liste de gâteaux et qui affiche le nom et le prix de chaque gâteau.
  3. Définissez une liste (nommée "commandes") qui contiendra toutes les commandes passées par les clients. Chaque élément de la liste doit être un tuple contenant les informations suivantes dans l'ordre : nom du client, type de gâteau commandé, quantité commandée.
  4. Définissez une fonction (nommée "ajouter_commande") qui prend en argument la liste de commandes et qui permet d'ajouter une nouvelle commande. Cette fonction doit demander le nom du client, le type de gâteau commandé et la quantité commandée, et ajouter ces informations sous forme de tuple à la liste de commandes.
  5. Définissez une fonction (nommée "afficher_commandes") qui prend en argument la liste de commandes et qui affiche les informations de chaque commande (nom du client, type de gâteau commandé, quantité commandée).
  6. Définissez une fonction (nommée "calculer_total") qui prend en argument la liste de commandes et la liste de gâteaux, et qui calcule le montant total à payer pour toutes les commandes. Cette fonction doit utiliser les prix unitaires des gâteaux pour calculer le montant de chaque commande, puis ajouter tous les montants pour obtenir le total.
  7. Définissez une fonction (nommée "commandes_client") qui prend en argument la liste de commandes et le nom d'un client, et qui affiche les informations de toutes les commandes passées par ce client.
  8. Définissez une fonction (nommée "supprimer_commande") qui prend en argument la liste de commandes et le nom d'un client, et qui supprime toutes les commandes passées par ce client.

Remarques :

  • Le prix total de chaque commande est égal au prix unitaire du gâteau multiplié par la quantité commandée.
  • Le prix unitaire de chaque gâteau doit être fixé dans la liste "gateaux".
  • Vous pouvez supposer que le nom du client et le type de gâteau commandé ne contiendront pas de virgules (,).
  • Vous pouvez supposer que la quantité commandée sera un nombre entier positif.
  • Vous pouvez utiliser la fonction input() pour demander des entrées à l'utilisateur.

Correction :

Questions de Cours : 

1) Un identificateur en Python est un nom qui est utilisé pour identifier un objet, tel qu'une variable, une fonction ou une classe. Il doit commencer par une lettre ou un underscore, et peut être suivi de lettres, de chiffres ou d'underscores. Les identificateurs en Python sont sensibles à la casse, ce qui signifie que les noms 'ma_variable' et 'Ma_Variable' sont considérés comme deux identificateurs différents. Un exemple d'identificateur valide est 'ma_variable'.

2) La principale différence entre une liste et un tuple en Python est que les listes sont modifiables (mutables), tandis que les tuples sont immuables (immutables). Cela signifie que les éléments d'une liste peuvent être modifiés après sa création, tandis que les éléments d'un tuple ne peuvent pas être modifiés. Les listes sont généralement utilisées lorsque vous devez ajouter, supprimer ou modifier des éléments, tandis que les tuples sont utilisés lorsque vous devez stocker des éléments qui ne doivent pas être modifiés. Par exemple, vous pouvez utiliser une liste pour stocker une liste de courses à faire, car vous pouvez ajouter ou supprimer des éléments en fonction de vos besoins. En revanche, vous pouvez utiliser un tuple pour stocker les coordonnées d'un point dans un plan cartésien, car les coordonnées d'un point ne doivent pas être modifiées.

3) Une fonction en Python est un bloc de code qui effectue une tâche spécifique et peut être appelé à partir de n'importe où dans votre code. Les fonctions sont définies à l'aide du mot-clé 'def' suivi du nom de la fonction, des parenthèses et des deux points. Les paramètres de la fonction (le cas échéant) sont spécifiés entre parenthèses, et le corps de la fonction est indenté. Les fonctions peuvent prendre des paramètres en entrée, effectuer des opérations sur ces paramètres, et renvoyer une sortie (ou aucune). Voici un exemple de fonction qui prend deux nombres en entrée, les ajoute et renvoie le résultat :

def addition(a, b):
    result = a + b
    return result

# appel de la fonction avec les arguments 2 et 3
print(addition(2, 3)) # affiche 5

4) Un module en Python est un fichier contenant du code Python qui peut être importé dans d'autres programmes Python. Les modules sont utilisés pour organiser le code en fonctionnalités logiques et réutilisables, et pour éviter la duplication de code. Python dispose de nombreux modules intégrés, tels que 'math' pour les opérations mathématiques, 'os' pour les opérations système, etc. Pour importer un module dans votre programme Python, vous pouvez utiliser l'instruction 'import' suivie du nom du module. Par exemple, pour importer le module math et utiliser la fonction sqrt() pour calculer la racine carrée d'un nombre, vous pouvez écrire :

import math

# calcul de la racine carrée de 16
result = math.sqrt(16)

# affichage du résultat
print(result) # affiche 4.0

5) L'indentation en Python est utilisée pour délimiter les blocs de code dans une fonction, une boucle ou une condition. Contrairement à d'autres langages de programmation qui utilisent des caractères de délimitation tels que les accolades ou les mots-clés begin/end, Python utilise l'indentation pour déterminer les blocs de code. Par exemple, voici un exemple de code Python qui utilise l'indentation pour définir un bloc de code dans une fonction :

def my_function():
    print("Hello, world!")
    if True:
        print("This is true.")
    else:
        print("This is false.")

Dans cet exemple, le bloc de code de la fonction my_function() commence par la ligne qui contient la définition de la fonction et se termine par la dernière ligne qui contient un décalage vers la gauche. Les instructions print() à l'intérieur de la fonction et la condition if utilisent également l'indentation pour définir leurs blocs de code.

L'indentation est importante en Python car elle aide à rendre le code plus lisible et plus facile à comprendre. Si l'indentation n'est pas correcte, le code peut générer des erreurs de syntaxe ou produire des résultats inattendus. Pour contrôler l'indentation dans votre code Python, vous pouvez utiliser des espaces ou des tabulations pour déplacer le texte vers la droite ou vers la gauche. Il est important de choisir une convention et de la suivre de manière cohérente dans tout votre code.

Problème : Gestion des commandes de gâteaux

# Définition des gâteaux disponibles
gateaux = [("gateau au chocolat", 5), ("gateau à la vanille", 4), ("gateau aux fruits", 6)]

# Fonction pour afficher les gâteaux disponibles
def afficher_gateaux(gateaux):
    print("Gâteaux disponibles :")
    for g in gateaux:
        print("- {} ({} €)".format(g[0], g[1]))

# Initialisation de la liste des commandes
commandes = []

# Fonction pour ajouter une commande
def ajouter_commande(commandes, gateaux):
    nom_client = input("Nom du client : ")
    afficher_gateaux(gateaux)
    type_gateau = input("Type de gâteau : ")
    quantite = int(input("Quantité : "))
    commande = (nom_client, type_gateau, quantite)
    commandes.append(commande)
    print("Commande ajoutée :", commande)

# Fonction pour afficher toutes les commandes
def afficher_commandes(commandes):
    print("Liste des commandes :")
    for c in commandes:
        print("- Client : {}, Gâteau : {}, Quantité : {}".format(c[0], c[1], c[2]))

# Fonction pour calculer le montant total des commandes
def calculer_total(commandes, gateaux):
    total = 0
    for c in commandes:
        for g in gateaux:
            if g[0] == c[1]:
                total += g[1] * c[2]
                break
    return total

# Fonction pour afficher les commandes d'un client
def commandes_client(commandes, nom_client):
    print("Commandes de {} :".format(nom_client))
    for c in commandes:
        if c[0] == nom_client:
            print("- Gâteau : {}, Quantité : {}".format(c[1], c[2]))

# Fonction pour supprimer les commandes d'un client
def supprimer_commande(commandes, nom_client):
    nb_supprimes = 0
    i = 0
    while i < len(commandes):
        if commandes[i][0] == nom_client:
            del commandes[i]
            nb_supprimes += 1
        else:
            i += 1
    print("{} commandes supprimées pour le client {}".format(nb_supprimes, nom_client))

# Exemple d'utilisation
afficher_gateaux(gateaux)
ajouter_commande(commandes, gateaux)
ajouter_commande(commandes, gateaux)
afficher_commandes(commandes)
print("Total à payer : {} €".format(calculer_total(commandes, gateaux)))
commandes_client(commandes, "Alice")
supprimer_commande(commandes, "Bob")
afficher_commandes(commandes)

Voici un exemple d'exécution du programme :

Gâteaux disponibles :
- gateau au chocolat (5 €)
- gateau à la vanille (4 €)
- gateau aux fruits (6 €)
Nom du client : Alice
Gâteaux disponibles :
- gateau au chocolat (5 €)
- gateau à la vanille (4 €)
- gateau aux fruits (6 €)
Type de gâteau : gateau à la vanille
Quantité : 2
Commande ajoutée : ('Alice', 'gateau à la vanille', 2)
Nom du client : Bob
Gâteaux disponibles :
- gateaux[0] : gâteau au chocolat, prix unitaire : 2.5 €

- gateaux[1] : gâteau aux fruits, prix unitaire : 3.0 €

- gateaux[2] : gâteau au fromage, prix unitaire : 4.0 €

Souhaitez-vous passer une commande ? (Oui/Non)

 

 

Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam