Website-Suche

Python-Programmierung für Anfänger: Lass uns eine einfache Quiz-App bauen


Python-Programmierung für Anfänger sollte Spaß machen. Als jemand, der zufällige Trivia und Spiele mag, ist es eine unterhaltsame und aufregende Möglichkeit, einige coole Konzepte in Python zu lernen, eine Quiz-App für einen Trivia-Abend zu erstellen. Lassen Sie uns sehen, was nötig ist, um diese App zu machen.

Einsteiger in die Python-Programmierung: Ein Leitfaden für Anfänger

Python gehört zu den am häufigsten verwendeten Programmiersprachen der Welt und ist ein einfacher Einstieg für Anfänger. Es ist ein so einfaches Werkzeug, dass wir bereits eine einfache To-Do-Liste in Python erstellt haben, die das Hinzufügen und Entfernen von Elementen umfasst. Dieses Projekt wird etwas komplizierter, aber wir haben die gleichen Ausgangsschritte.

Wenn Sie Ihre IDE noch nicht heruntergeladen und eingerichtet haben, ist es relativ einfach. Die meisten Benutzer verwenden Python unter Windows oder Linux, aber es gibt auch eine Mac-Version. Wenn Sie sich nicht sicher sind, ob Sie Python auf Ihrem System haben, können Sie die Version in der Befehlszeile überprüfen. Eine Versionsnummer zeigt Ihnen, ob Sie Python haben und welche Version der Sprache Sie installiert haben.

Ich benutze Python für Windows, und ich habe bereits Details gegeben, wie man Python mit meiner bevorzugten IDE (Visual Studio) einrichtet. Zur Auffrischung sind dies die Schritte:

  • Installieren Sie Python für Ihr Betriebssystem.
  • Installieren Sie Ihre IDE (in meinem Fall Visual Studio).
  • Überprüfen Sie die Version, um sicherzustellen, dass Python korrekt installiert ist.
  • Starte ein neues Projekt.

Jetzt, da wir die grundlegende Einrichtung abgeschlossen haben, können wir damit beginnen, die Anwendung tatsächlich zu erstellen!

Einrichten unserer benutzerdefinierten Fragenstruktur

Da dies eine Quiz-App ist, benötigen wir etwas, um unsere Fragen und Antworten zu speichern. Dazu richten wir eine benutzerdefinierte Fragenstruktur in diesem Format ein:

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

Zu diesem Zweck werden wir ein Testset aus fünf Fragen zusammenstellen, aus dem wir die Reihenfolge, in der sie erscheinen, zufällig anordnen werden:

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"
    }
]

Diese Art von Struktur wird ein Wörterbuch genannt. Wörterbücher in jeder Programmiersprache sind Sammlungen von Schlüssel-Wert-Paaren. Sie können den Wert, der mit einem bestimmten Schlüssel verbunden ist, finden, indem Sie im Wörterbuch nach diesem Schlüssel suchen.

Wir müssen auch die Random-Bibliothek importieren, die es uns ermöglicht, das Array der Fragen zu mischen. Dazu fügen wir diese Zeile oben in unseren Code ein:

import random

Das Import-Schlüsselwort ermöglicht es uns, jede benötigte Bibliothek "einzubringen". In diesem Fall werden wir die Zufallsbibliothek importieren, die nützliche Funktionen zur Randomisierung von Listen und Arrays enthält. Solches Wiederverwenden von Code ist eines der mächtigsten Teile von Python. Wenn Sie etwas benötigen, gibt es wahrscheinlich irgendwo eine Bibliothek mit der Funktion, nach der Sie suchen.

Eine Frage stellen und eine Antwort erhalten

Jetzt, da wir uns auf die Fragen geeinigt haben, die wir stellen werden, müssen wir herausfinden, wie wir dem Benutzer diese Fragen zeigen und eine Antwort von ihm erhalten. Dazu werden wir zwei Funktionen definieren:

#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.")

Lass uns diese Funktionen einzeln betrachten und ihren Zweck bestimmen. Die Funktion display_question() wird die Frage annehmen, sie auf dem Bildschirm ausgeben und die Optionen sowie die Zahlenwerte für jede Option drucken. Die Funktion get_user_answer() wird die Antwort des Benutzers sammeln und sie mit der richtigen Antwort vergleichen, die wir in den zuvor aufgestellten Fragen definiert haben.

Die Funktion get_user_answer wird auch einige grundlegende Fehlerüberprüfungen durchführen. Wenn der Benutzer etwas anderes als eine Zahl eingibt oder die Zahl außerhalb der Grenzen der Auswahl liegt, werden wir ihn erneut nach der Antwort fragen.

Gestaltung des Quiz

Jetzt, da wir Fragen und eine Möglichkeit haben, Antworten zu erhalten, müssen wir die Fragen zufällig anordnen und es dem Spieler ermöglichen, jede zu beantworten. Dazu werden wir eine Funktion namens run_quiz() entwerfen:

#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}%")

In dieser Funktion haben wir eine Score-Variable definiert, die wir verwenden werden, um den Erfolg des Spielers bei unserem Quiz zu bestimmen. Als Nächstes wirst du die Zeile random.shuffle(questions) bemerken, die die Reihenfolge ändert, in der das Programm dem Benutzer die Fragen stellt. Bei nur fünf Fragen wie diesen wird es viele Überschneidungen geben. Sobald du jedoch beginnst, Dutzende von Fragen einzubeziehen, wird es wahrscheinlich keine Möglichkeit geben, vorherzusagen, in welcher Reihenfolge die Fragen gestellt werden.

Die for-Schleife durchläuft jede Frage in unserem Array, stellt sie und wartet auf eine Antwort. Wenn der Spieler die Frage richtig beantwortet, erhöht sich sein Punktestand. Wenn er falsch antwortet, wird ihm die richtige Antwort angezeigt, damit er für das nächste Mal lernt. Wenn wir das Quiz beenden, gibt das Programm den Endstand des Benutzers als Prozentsatz der Gesamtzahl der Fragen aus.

Den Spielablauf erstellen

Alle Spiele erfordern eine Spielschleife. In diesem Fall wird unsere Hauptspielschleife unsere main()-Funktion sein:

#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()

Diese Funktion wird unser ganzes Quiz kapseln und den Spieler fragen, ob er erneut spielen möchte. Wenn nicht, wird das Spiel beendet. Wenn doch, werden die Fragen neu gemischt und ihnen erneut gestellt.

Alles zusammenfügen

Wir können das Quiz durchführen, sobald wir all unseren Code geschrieben und gespeichert haben. Visual Studio hat einen praktischen "Run"-Button, den ich benutze, um mein Quizspiel zu starten. Die Ergebnisse sind beeindruckend:

Wir haben sogar Korrekturen, wenn die Antwort falsch ist, und eine abschließende Berechnung für die Punktzahl:

Alles scheint wie erwartet zu funktionieren, daher haben wir keine Fehler zu beheben. Herzlichen Glückwunsch zum Abschluss deines eigenen Python Quiz Spieleprojekts!

Aktualisierungen, Verbesserungen und Herausforderungen

Dies ist ein einfaches Quizspiel; fünf Fragen sind nicht besonders spannend. Wenn Sie das Projekt erweitern möchten, finden Sie hier einige Herausforderungen, die Sie ausprobieren können und die nicht zu kompliziert sind, aber das Erlebnis für einen Spieler angenehmer machen:

  • Erhöhen Sie die Anzahl der Fragen: Je mehr Fragen Sie haben, desto herausfordernder wird das Spiel für einen Spieler sein.
  • Wählen Sie eine zufällige Teilmenge von Fragen aus: Anstatt alle Fragen ständig zu stellen, wählen Sie eine Teilmenge von Fragen aus und stellen Sie diese. Das erhöht die Wiederspielbarkeit, da der Spieler nicht weiß, welche Fragen er das nächste Mal erhält.
  • Gestalte eine benutzerfreundlichere Oberfläche: Das Terminal ist für Anfänger, die mit Python-Programmierung arbeiten, zugänglich, aber eine tatsächliche Benutzeroberfläche zusammenzustellen ist viel einfacher, als man denkt.

Wohin von hier aus?

Wenn Sie nach einem umfassenderen Python-Leitfaden suchen, sollten Sie Apps und Websites überprüfen, die neuen Entwicklern helfen. Eine der besten Eigenschaften des Programmierens ist, dass Sie nicht das Beispiel von jemand anderem folgen müssen. Sie können einfach lernen, während Sie vorankommen. Alles, was Sie lernen, kann irgendwann in Ihrer Karriere genutzt werden.

Ich habe den vollständigen Code für dieses Quizspiel auf GitHub hochgeladen, damit du ihn mit deinem eigenen abgleichen kannst.