Python 13.2 : Append, extend, and insert
Cette vidéo reprend le projet questionnaire vu précédemment avec les fonctions et l'améliore en utilisant les collections (tuples et listes). L'objectif principal est de bien séparer le code et les données, une bonne pratique fondamentale qui rend le programme évolutif. Sans cette séparation, on mélange logique et contenu, et on ne peut ni charger les questions depuis un fichier ni les éditer en dehors du code.
Structurer une question
Une question contient un énoncé, plusieurs propositions de réponse et l'indication de la bonne. Plusieurs approches sont possibles. Une première version stocke les réponses dans un tuple et indique la bonne réponse par son nom :
question1 = (
"Quelle est la capitale de la France ?",
("Paris", "Lyon", "Marseille"),
"Paris" # la bonne réponse, en dur
)
Cette approche a un inconvénient : on duplique la bonne réponse, qui apparaît à la fois dans le tuple des choix et comme indication. Une autre approche consiste à associer à chaque réponse un booléen indiquant si elle est correcte. C'est utile pour les questionnaires à choix multiples (cases à cocher), mais cela complique la gestion avec deux index pour chaque réponse :
- Approche "bonne réponse en dur" : simple mais duplique l'information
- Approche tuples (réponse, booléen) : flexible mais plus complexe à parcourir
- Choix selon le besoin : QCM simple ou cases à cocher multiples
- Pour ce projet on garde la version la plus simple : bonne réponse en dur
L'étape suivante est de gérer plusieurs questions. On crée une liste de questionnaires, chaque élément étant un tuple représentant une question complète. La fonction poser_question reçoit alors un tuple en paramètre et gère l'affichage, la saisie utilisateur et la vérification. Cette structuration prépare le terrain pour aller plus loin : charger les questions depuis un fichier JSON, exposer une API web, ou passer à la programmation orientée objet pour modéliser des entités plus riches.