Illustration with the word
Agence web » Actualités du digital » Créons une application de quiz simple

Créons une application de quiz simple

La programmation Python pour les débutants doit être amusante. En tant que personne qui aime les jeux et les anecdotes aléatoires, la création d'une application de quiz pour une soirée de quiz est une manière amusante et passionnante d'apprendre des concepts intéressants en Python. Voyons ce qu'il faut pour créer cette application.

Premiers pas avec la programmation Python pour les débutants

Python est l'un des langages les plus utilisés au monde et constitue un point de départ facile pour les débutants. C'est un outil tellement simple que nous avons déjà créé une simple liste de tâches en Python, avec ajout et suppression d'éléments. Ce projet sera légèrement plus compliqué, mais nous suivrons les mêmes étapes de départ.

Si vous n'avez pas téléchargé et configuré votre IDE, c'est relativement simple. La plupart des utilisateurs exécutent Python sur Windows ou Linux, mais il existe également une version Mac. Si vous n'êtes pas sûr d'avoir Python sur votre système, vous pouvez vérifier la version sur la ligne de commande. Un numéro de version vous indiquera si vous avez Python et quelle version du langage vous avez installée.

J'utilise Python pour Windows et j'ai déjà fourni des détails sur la façon de configurer Python avec mon IDE préféré (Visual Studio). Pour rappel, voici les étapes à suivre :

  • Installez Python pour votre système d'exploitation.
  • Installez votre IDE (Visual Studio, dans mon cas).
  • Vérifiez la version pour vous assurer que votre Python est correctement installé.
  • Démarrer un nouveau projet.

Maintenant que nous avons terminé la configuration de base, nous pouvons passer à la création proprement dite de l'application !

Configuration de notre structure de questions personnalisées

Comme il s'agit d'une application de quiz, nous aurons besoin de quelque chose pour stocker nos questions et nos réponses. Pour cela, nous allons configurer une structure de questions personnalisée dans ce format :

"question": <insert question here>,
"options": (<comma-separated list of strings>),
"correct_answer": <string from the list that corresponds to the right answer>

À cette fin, nous allons mettre en place un banc d’essai de cinq questions, à partir desquelles nous randomiserons l’ordre dans lequel elles apparaissent :


questions = (
    {
        "question": "What is the capital of France?",
        "options": ("London", "Berlin", "Paris", "Madrid"),
        "correct_answer": "Paris"
    },
    {
        "question": "Which planet is known as the Red Planet?",
        "options": ("Mars", "Venus", "Jupiter", "Saturn"),
        "correct_answer": "Mars"
    },
    {
        "question": "What is the chemical symbol for Potassium?",
        "options": ("P", "Po", "K", "Li"),
        "correct_answer": "K"
    },
    {
        "question": "What year was Abraham Lincoln born?",
        "options": ("1909", "1811", "1809", "1776"),
        "correct_answer": "1809"
    },
    {
        "question": "What is the geographical name for a rainforest?",
        "options": ("Taiga", "Badlands", "Selvas", "Hardpan"),
        "correct_answer": "Selvas"
    }
)

Ce type de structure est appelé dictionnaire. Les dictionnaires de tout langage de programmation sont des collections de paires clé-valeur. Vous pouvez trouver la valeur associée à une clé particulière en recherchant cette clé dans le dictionnaire.

Nous devrons également importer la bibliothèque aléatoire, ce qui nous permettra de mélanger le tableau de questions. Pour ce faire, nous inclurons cette ligne en haut de notre code :

import random

Le mot-clé import nous permet d'importer n'importe quelle bibliothèque dont nous avons besoin. Dans ce cas, nous allons importer la bibliothèque random, qui contient des fonctions utiles pour randomiser des listes et des tableaux. La réutilisation de code comme celui-ci est l'une des parties les plus puissantes de Python. Si vous avez besoin de quelque chose, il existe probablement une bibliothèque avec la fonction que vous recherchez quelque part.

Afficher une question et obtenir une réponse

Maintenant que nous avons défini les questions que nous allons poser, nous devons déterminer comment montrer ces questions à l'utilisateur et obtenir une réponse. Pour cela, nous allons définir deux fonctions :


def display_question(question):
    print(question("question"))
    for i, option in enumerate(question("options"), 1):
        print(f"{i}. {option}")


def get_user_answer():
    while True:
        try:
            choice = int(input("Enter your answer (1-4): "))
            if 1 <= choice <= 4:
                return choice - 1
            else:
                print("Please enter a number between 1 and 4.")
        except ValueError:
            print("Invalid input. Please enter a number.")

Examinons ces fonctions individuellement et déterminons leur objectif. La fonction display_question() prendra la question, l'affichera à l'écran et imprimera les options et la valeur numérique de chacune. La fonction get_user_answer() collectera la réponse de l'utilisateur et la comparera à la réponse correcte définie dans les questions que nous avons définies précédemment.

La fonction get_user_answer effectuera également quelques vérifications d'erreurs de base. Si l'utilisateur saisit autre chose qu'un nombre ou si le nombre se situe en dehors des limites des choix, nous lui demanderons à nouveau la réponse.

Concevoir le quiz

Maintenant que nous avons des questions et un moyen de demander des réponses, nous devons randomiser les questions et permettre au joueur de répondre à chacune d'elles. Pour cela, nous allons concevoir une fonction appelée run_quiz() :


def run_quiz():
    score = 0
    total_questions = len(questions)
    
    random.shuffle(questions)
    
    for question in questions:
        display_question(question)
        user_choice = get_user_answer()
        
        if question("options")(user_choice) == question("correct_answer"):
            print("Correct!")
            score += 1
        else:
            print(f"Sorry, that's incorrect. The correct answer is: {question('correct_answer')}")
        
        print()
    
    print(f"Quiz complete! You scored {score} out of {total_questions}.")
    percentage = (score / total_questions) * 100
    print(f"Your score: {percentage:.2f}%")

Dans cette fonction, nous avons défini une variable de score, que nous utiliserons pour déterminer le succès du joueur à notre quiz. Ensuite, vous remarquerez la ligne random.shuffle(questions) qui modifiera l'ordre dans lequel le programme pose les questions à l'utilisateur. Il y aura beaucoup de chevauchement lorsque nous n'aurons que cinq questions comme celle-ci. Cependant, une fois que vous commencerez à inclure des dizaines de questions, il y a de fortes chances qu'il n'y ait aucun moyen de prédire dans quel ordre les questions seront posées.

La boucle for parcourt chaque question de notre tableau, en demandant et en attendant une réponse. Si le joueur répond correctement à la question, son score augmente. S'il se trompe, on lui demande la bonne réponse, afin qu'il apprenne pour la prochaine fois. Lorsque nous terminons le quiz, le programme imprime le score final que l'utilisateur a obtenu correctement sous forme de pourcentage du nombre total de questions.

Construire la boucle de jeu

Tous les jeux nécessitent une boucle de jeu. Dans ce cas, notre boucle de jeu principale sera notre fonction main() :


def main():
    while True:
        print("Welcome to the Python Quiz Game!")
        run_quiz()
        
        play_again = input("Would you like to play again? (yes/no): ").lower()
        if play_again != 'yes':
            print("Thanks for playing! Goodbye!")
            break

if __name__ == "__main__":
    main()

Cette fonction résumera l'intégralité de notre quiz et demandera au joueur s'il souhaite rejouer. S'il ne le souhaite pas, le jeu sera fermé. S'il le souhaite, les questions seront remaniées et posées à nouveau.

Mettre tout cela ensemble

Nous pouvons exécuter le quiz une fois que nous avons écrit et enregistré tout notre code. Visual Studio dispose d'un bouton « Exécuter » pratique que j'utilise pour démarrer mon quiz. Les résultats sont impressionnants :

Nous avons même des corrections si la réponse est fausse et un calcul final pour le score :

Tout semble fonctionner comme prévu, nous n'avons donc aucun bug à corriger. Félicitations pour avoir terminé votre propre projet de jeu de quiz Python !

Mises à jour, améliorations et défis

Il s'agit d'un jeu de quiz simple ; cinq questions ne sont pas si passionnantes que ça. Si vous souhaitez étendre le projet, voici quelques défis que vous pouvez essayer qui ne sont pas trop compliqués mais qui rendront cette expérience plus agréable pour un joueur :

  • Augmentez le nombre de questions : Plus vous avez de questions, plus le jeu sera difficile pour le joueur.
  • Sélectionnez un sous-ensemble aléatoire de questions : au lieu de poser toutes les questions en même temps, sélectionnez un sous-ensemble de questions et posez-les. Cela permet une meilleure rejouabilité puisque le joueur ne sait pas quelles questions il recevra la prochaine fois.
  • Concevez une interface plus conviviale : le terminal est accessible aux débutants pour être implémenté dans la programmation Python, mais créer une interface utilisateur réelle est beaucoup plus simple que vous ne le pensez.

Où aller à partir d'ici

Si vous recherchez un guide Python plus complet, vous devriez consulter les applications et les sites Web qui aident les nouveaux développeurs. L'un des meilleurs avantages de la programmation est que vous n'avez pas besoin de suivre l'exemple de quelqu'un d'autre. Vous pouvez simplement apprendre au fur et à mesure. Chaque chose que vous apprenez peut être mise en pratique à un moment donné de votre carrière.

J'ai téléchargé le code complet de ce jeu de quiz sur GitHub afin que vous puissiez le comparer au vôtre.

★★★★★