Programmation Python pour les débutants : Construisons une simple application de quiz
La programmation Python pour les débutants devrait être amusante. En tant que personne qui aime les anecdotes aléatoires et les jeux, créer une application de quiz pour une soirée trivia est un moyen amusant et passionnant d'apprendre des concepts intéressants en Python. Voyons ce qu'il faut pour créer cette application.
Introduction à la programmation Python pour les débutants
Python est l'une des langues les plus utilisées dans le monde, et c'est un point de départ facile pour les débutants. C'est un outil si simple que nous avons déjà construit une liste de tâches simple en Python, complète avec l'ajout et la suppression d'éléments. Ce projet sera légèrement plus compliqué, mais nous avons 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 aussi une version pour Mac. Si vous n'êtes pas sûr d'avoir Python sur votre système, vous pouvez vérifier la version dans 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 sur Windows, et j'ai déjà fourni des détails sur la façon de configurer Python avec mon IDE de choix (Visual Studio). Pour un rappel, voici les étapes :
- 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 installé correctement.
- Commencer un nouveau projet.
Maintenant que nous avons terminé la configuration de base, nous pouvons passer à la construction réelle de l'application !
Mise en place 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 réponses. Pour cela, nous allons mettre en place une structure de question 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 préparer un banc d'essai de cinq questions, dont nous allons randomiser l'ordre d'apparition :
Quiz questions
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 s'appelle un dictionnaire. Les dictionnaires dans n'importe quel 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 random, ce qui nous permettra de mélanger le tableau de questions. Pour ce faire, nous inclurons cette ligne en haut de notre code :
import randomLe mot-clé import nous permet de « ramener » toute bibliothèque dont nous avons besoin. Dans ce cas, nous importerons la bibliothèque random, qui contient des fonctions utiles pour randomiser des listes et des tableaux. Réutiliser du code comme ça est l'un des aspects les plus puissants de Python. Si vous avez besoin de quelque chose, il y a 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écidé des questions que nous allons poser, nous devons réfléchir à la façon de montrer ces questions à l'utilisateur et d'obtenir une réponse de sa part. Pour cela, nous allons définir deux fonctions :
#Function for displaying the questions to the screen
def display_question(question):
print(question["question"])
for i, option in enumerate(question["options"], 1):
print(f"{i}. {option}")
#Function for getting user input
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 but. La fonction display_question() prendra la question, l'affichera à l'écran et imprimera les options ainsi que la valeur numérique pour chacune. La fonction get_user_answer() collectera la réponse de l'utilisateur et la comparera à la bonne réponse définie dans les questions que nous avons établies précédemment.
La fonction get_user_answer effectuera également quelques vérifications de base. Si l'utilisateur saisit autre chose qu'un nombre ou si le nombre est en dehors des limites des choix, nous lui demanderons à nouveau la réponse.
Conception du Quiz
Maintenant que nous avons des questions et un moyen de susciter des réponses, nous devons randomiser les questions et permettre au joueur de répondre à chacune. Pour cela, nous allons concevoir une fonction appelée run_quiz() :
#Running the Quiz from start to end
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() Add a blank line for readability
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 score, que nous utiliserons pour déterminer le succès du joueur à notre quiz. Ensuite, vous remarquerez la ligne random.shuffle(questions) qui changera l'ordre dans lequel le programme pose les questions à l'utilisateur. Il y aura beaucoup de chevauchement lorsque nous n'avons que cinq questions comme celle-ci. Cependant, une fois que vous commencerez à inclure des dizaines de questions, il est très probable qu'il n'y aura aucun moyen de prédire dans quel ordre les questions seront posées.
La boucle for parcourt chaque question de notre tableau, posant la question et attendant une réponse. Si le joueur répond correctement, son score augmente. S'il se trompe, il reçoit la réponse correcte, afin qu'il puisse apprendre pour la prochaine fois. Lorsque nous terminons le quiz, le programme imprime le score final que l'utilisateur a obtenu correctement en 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() :
#The Main Game Loop
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 encapsulera tout notre quiz et demandera au joueur s'il souhaite jouer à nouveau. S'il ne le veut pas, le jeu se terminera. S'il le veut, les questions seront remaniées et posées à nouveau.
Tout rassembler
Nous pouvons exécuter le quiz une fois que nous avons écrit et sauvegardé tout notre code. Visual Studio a un bouton "Exécuter" pratique que j'utilise pour lancer mon jeu quiz. Les résultats sont impressionnants :
Nous avons même des corrections si la réponse est incorrecte et un calcul final pour le score :
Tout semble fonctionner comme prévu, donc nous n'avons pas de bugs à corriger. Félicitations pour avoir terminé votre propre projet de jeu de quiz Python !
Mises à jour, améliorations et défis
Ceci est un jeu de quiz simple ; cinq questions ne sont pas si excitantes. Si vous souhaitez développer le projet, voici quelques défis que vous pouvez essayer qui ne sont pas trop compliqués mais rendront l'expérience plus agréable pour un joueur :
- Augmentez le nombre de questions : Plus vous avez de questions, plus le jeu sera difficile pour un joueur.
- Sélectionnez un sous-ensemble aléatoire de questions : Au lieu de poser toutes les questions tout le temps, sélectionnez un sous-ensemble de questions et posez celles-ci. Cela augmente la rejouabilité, car 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 utilisé dans la programmation Python, mais créer une véritable interface utilisateur est beaucoup plus facile que vous ne le pensez.
Où aller à partir d'ici
Si vous cherchez un guide Python plus complet, vous devriez consulter des applications et des sites web qui aident les nouveaux développeurs. L'une des meilleures choses à propos 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. Chacune des choses que vous apprenez peut être utilisée à 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 vérifier par rapport au vôtre.


