U kunt leren programmeren door korte opdrachtregelprojecten te maken in Python. Een van de projecten die je kunt maken is een interactieve quiz, waarbij je de gebruiker verschillende soorten vragen kunt stellen.

Vragen die u kunt stellen, zijn meerkeuzevragen of vragen die schriftelijk moeten worden beantwoord. U kunt ook vragen stellen met alternatieve juiste antwoorden. U kunt uw programma zelfs hints laten geven aan de gebruiker.

Hoe u het Python-script maakt en uw eerste quizvraag toevoegt

Maak een Python-bestand en voeg uw eerste vraag toe. Als je nog niet eerder in Python hebt gecodeerd, zijn er veel cursussen en bronnen waar je dat kunt leer gratis Python.

  1. Maak een nieuw tekstbestand met de naam "InteractiveQuiz.py".
  2. Open het bestand met een willekeurige teksteditor en voeg uw eerste afdrukverklaring toe om de gebruiker welkom te heten bij de quiz.
    afdrukken("Hallo, welkom bij de aardrijkskundequiz. Beantwoord de vragen net zo ze worden gepresenteerd.")
  3. Stel de eerste vraag aan de gebruiker. Gebruik de functie input() om te wachten op het antwoord van de gebruiker en sla hun invoer op in de variabele "userInput".
    instagram viewer
    afdrukken("Vraag 1. Welke stad is de hoofdstad van Australië?")
    gebruikersinvoer = invoer()
  4. Voeg een voorwaarde toe om te controleren of de invoer van de gebruiker overeenkomt met het juiste antwoord. Als de gebruiker het juiste antwoord heeft gegeven, geef hem dan een "juist" bericht weer. Zo niet, laat dan het juiste antwoord zien.
    if (userInput.lower() == "Canberra".lager()):
    print("Dat is is juist!")
    anders:
    print("Sorry, het juiste antwoord is Canberra.")
  5. Om uw quiz uit te voeren en te testen of uw vraag werkt, opent u de opdrachtregel en navigeert u naar de locatie van uw Python-bestand. Als u uw bestand bijvoorbeeld opslaat in een map met de naam Desktop, zou de opdracht zijn:
    CD Bureaublad
  6. Voer de python-opdracht uit om de quiz uit te voeren.
    PythonInteractieveQuiz.py
  7. Geef een antwoord op de quizvraag.

Meerdere vragen toevoegen aan de quiz

U kunt meerdere vragen toevoegen door bovenstaande code te herhalen. Dit maakt uw code echter onnodig lang en moeilijker te updaten. Sla voor een betere benadering informatie over de vraag op in een object.

  1. Voeg bovenaan het Python-bestand een klasse toe om informatie over een quizvraag op te slaan. Als je dit nog niet eerder hebt gedaan, kun je meer informatie vinden over hoe je dit kunt doen maak een klasse in Python.
    klasVraag:
    zeker__in het__(zelf, vraagtekst, antwoord):
    zelf.questionText = vraagText
    zelf.antwoord = antwoord

    zeker__repr__(zelf):
    opbrengst '{'+ zelf.vraagTekst +', '+ zelf.antwoord +'}'

  2. Voeg onder de klasse een reeks vraagobjecten toe. Deze objecten slaan de vraagtekst op die de quiz aan de gebruiker toont, samen met het juiste antwoord.
    quizVragen = [
    Vraag("Vraag 1. Welke stad is de hoofdstad van Australië?", "Canberra"),
    Vraag("Vraag 2. Welke stad is de hoofdstad van Japan?", "Tokio"),
    Vraag("Vraag 3. Hoeveel eilanden heeft de Filipijnen?", "7100")
    ]
  3. Vervang de bestaande if-instructie en gebruikersinvoercode. Gebruik in plaats daarvan een for-lus om de quizQuestions-array te herhalen. Geef voor elke vraag de vraag weer en vergelijk de invoer van de gebruiker met het juiste antwoord.
    voor vraag in quizVragen:
    afdrukken (f"{vraag.vraagtekst}?")
    gebruikersinvoer = invoer()
    if (userInput.lower() == vraag.answer.lower()):
    print("Dat is is juist!")
    anders:
    print (f"Sorry, het juiste antwoord is {vraag antwoord}.")

Meerkeuzevragen toevoegen

U kunt de klasse Vraag uitbreiden om meerkeuzevragen mogelijk te maken.

  1. Wijzig de vraagklasse bovenaan het bestand. Voeg een optioneel kenmerk toe met de naam multipleChoiceOptions.
    klasVraag:
    zeker__in het__(zelf, vraagtekst, antwoord, multipleChoiceOptions=Geen):
    zelf.questionText = vraagText
    zelf.antwoord = antwoord
    zelf.multipleChoiceOptions = multipleChoiceOptions

    zeker__repr__(zelf):
    opbrengst '{'+ zelf.vraagTekst +', '+ zelf.antwoord +', '+ str (self.multipleChoiceOptions) +'}'

  2. Voeg nog een vraag toe aan de quizQuestions-array. Sla enkele meerkeuzeopties op voor de vraag.
    quizVragen = [
    Vraag("Vraag 1. Welke stad is de hoofdstad van Australië?", "Canberra"),
    Vraag("Vraag 2. Welke stad is de hoofdstad van Japan?", "Tokio"),
    Vraag("Vraag 3. Hoeveel eilanden heeft de Filipijnen?", "7100"),
    Vraag("Vraag 4. Welk land neemt de meeste landmassa in beslag?", "b", ["(a) Verenigde Staten", "(b) Rusland", "(c) Australië", "(d) Antarctica"]),
    ]
  3. Wijzig het deel van de for-lus dat de vraag aan de gebruiker toont. Als er meerkeuzeopties zijn voor de vraag, geef deze dan weer na de vraag en voordat u de invoer van de gebruiker ophaalt.
    voor vraag in quizVragen:
    als (question.multipleChoiceOptions != Geen):
    afdrukken (f"{vraag.vraagtekst}?")
    voorkeuzeinvraag.multipleChoiceOptions:
    afdrukken(keuze)
    gebruikersinvoer = invoer()
    anders:
    afdrukken (f"{vraag.vraagtekst}?")
    gebruikersinvoer = invoer()

    if (userInput.lower() == vraag.answer.lower()):
    print("Dat is is juist!")
    anders:
    print (f"Sorry, het juiste antwoord is {vraag antwoord}.")

Een vraag toevoegen met alternatieve juiste antwoorden

Soms zijn er vragen waarbij de gebruiker een deel van het antwoord kan intypen, maar het is technisch nog correct.

Een van de vragen in uw quiz kan bijvoorbeeld zijn "In welk halfrond ligt Japan?". In dit geval kan de gebruiker "Noord", "Noordelijk" of "Noordelijk halfrond" typen en toch correct zijn.

  1. Voeg nog een optioneel kenmerk toe aan de klasse Vraag. Dit kenmerk bevat alle mogelijke alternatieve juiste antwoorden die de gebruiker kan invoeren.
    klasVraag:
    zeker__in het__(self, questionText, answer, multipleChoiceOptions=Geen, alternateAnswers=Geen):
    zelf.questionText = vraagText
    zelf.antwoord = antwoord
    zelf.multipleChoiceOptions = multipleChoiceOptions
    zelf.alternateAnswers = alternateAnswers

    zeker__repr__(zelf):
    opbrengst '{'+ zelf.vraagTekst +', '+ zelf.antwoord +', '+ str (self.multipleChoiceOptions) +', '+ str (zelf.alternateAnswers) +'}'

  2. Voeg nog een vraag toe aan de quizQuestions-array. Voeg "noordelijk halfrond" toe als het juiste antwoord. Voeg "noorden" en "noorden" toe als alternatieve juiste antwoorden.
    quizVragen = [
    #...
    Vraag("Vraag 5. Op welk halfrond bevindt Japan zich?", "Noordelijk halfrond", [], ["noorden", "noordelijk"]),
    ]
  3. Voeg nog een voorwaarde toe aan het if-statement dat controleert of de gebruiker een alternatief correct antwoord heeft ingevoerd.
    if (userInput.lower() == vraag.answer.lower()):
    print("Dat is is juist!")
    elif (question.alternateAnswers != Geenen userInput.lower() in vraag.alternateAnswers):
    print("Dat is is juist!")
    anders:
    print (f"Sorry, het juiste antwoord is {vraag antwoord}.")

Hoe de gebruiker hints te geven

U kunt het script wijzigen zodat de gebruiker niet door kan gaan naar de volgende fase totdat de huidige vraag correct is. Voeg in dit geval een variabele toe om te tellen hoe vaak de gebruiker een fout antwoord heeft ingevoerd. Na drie keer verkeerd raden kan je de gebruiker een hint geven.

  1. Wijzig de klasse Vraag om een ​​nieuw hintkenmerk te gebruiken.
    klasVraag:
    zeker__in het__(self, questionText, answer, hint=Geen, multipleChoiceOptions=Geen, alternateAnswers=Geen):
    zelf.questionText = vraagText
    zelf.antwoord = antwoord
    zelf.hint = hint
    zelf.multipleChoiceOptions = multipleChoiceOptions
    zelf.alternateAnswers = alternateAnswers

    zeker__repr__(zelf):
    opbrengst '{'+ zelf.vraagTekst +', '+ zelf.antwoord +', '+ zelf.hint +', '+ str (self.multipleChoiceOptions) +', '+ str (zelf.alternateAnswers) +'}'

  2. Voeg hints toe aan alle vragen in de quiz.
    quizVragen = [
    Vraag("Vraag 1. Welke stad is de hoofdstad van Australië?", "Canberra", "Begint met een C"),
    Vraag("Vraag 2. Welke stad is de hoofdstad van Japan?", "Tokio", "Begint met een T"),
    Vraag("Vraag 3. Hoeveel eilanden heeft de Filipijnen?", "7100", "Een getal tussen 7000 en 8000"),
    Vraag("Vraag 4. Welk land neemt de meeste landmassa in beslag?", "b", "Het land strekt zich uit over twee continenten", ["(a) Verenigde Staten", "(b) Rusland", "(c) Australië", "(d) Antarctica"]),
    Vraag("Vraag 5. Op welk halfrond bevindt Japan zich?", "Noordelijk halfrond", "De bovenste helft van de aarde", [], ["noorden", "noordelijk"]),
    ]
  3. Verwijder de if-statements die controleren of de gebruiker de vraag goed heeft beantwoord. Vervang deze door een while-lus. De while-lus blijft doorlopen totdat de gebruiker het juiste antwoord heeft. Voeg binnen de while-lus een telling toe die de hint weergeeft zodra de gebruiker het antwoord drie keer fout heeft.
    voor vraag in quizVragen:
    als (question.multipleChoiceOptions != Geen):
    afdrukken (f"{vraag.vraagtekst}?")
    voorkeuzeinvraag.multipleChoiceOptions:
    afdrukken(keuze)
    gebruikersinvoer = invoer()
    anders:
    afdrukken (f"{vraag.vraagtekst}?")
    gebruikersinvoer = invoer()
    aantal = 0
    terwijl (userInput.lower() != vraag.answer.lower()):
    als (question.alternateAnswers != Geenen userInput.lower() in vraag.alternateAnswers):
    pauze;
    tel = tel + 1
    als (tel >= 3):
    afdrukken (f"Tip: {vraag.hint}.")
    gebruikersinvoer = invoer()
    anders:
    print("Dat is isniet juist, proberen opnieuw.")
    gebruikersinvoer = invoer()

    print("Dat is is juist!")

  4. Voer uw quiz opnieuw uit in de opdrachtregel met behulp van de python-opdracht.
    PythonInteractieveQuiz.py
  5. Beantwoord vragen aan de quiz.

Kleine applicaties maken met Python

Een van de projecten die u kunt maken terwijl u leert coderen in Python, is een interactieve quiz. In de quiz kun je verschillende soorten vragen aan de gebruiker presenteren.

U kunt informatie over de quizvragen opslaan in een object, om te voorkomen dat u uw code voor elke vraag herhaalt.

Om je vaardigheden in Python te verbeteren, is het een goed idee om verschillende oefeningen en voorbeelden te oefenen. U kunt andere Python-voorbeelden bekijken die u kunnen helpen bij het leren.