Sådan laver du et quizspil i Python (med billeder)

Indholdsfortegnelse:

Sådan laver du et quizspil i Python (med billeder)
Sådan laver du et quizspil i Python (med billeder)

Video: Sådan laver du et quizspil i Python (med billeder)

Video: Sådan laver du et quizspil i Python (med billeder)
Video: Countdown timer program in Python ⌛ 2024, Kan
Anonim

Hvis du vil lære Python, er det godt at starte med nogle enkle tekstbaserede spil. Denne artikel viser dig, hvordan du laver et quizspil.

Trin

947361 1
947361 1

Trin 1. Installer Python, hvis du ikke allerede har gjort det

Der er to hovedversioner af Python: Python 2 og Python 3. De kan ikke udskiftes, og understøttelse af Python 2 slutter i 2020, så denne artikel antager, at du installerer Python 3.

947361 2
947361 2

Trin 2. Åbn en ny fil i en teksteditor eller dit Python IDE

Giv det et beskrivende navn, der slutter med.py.

947361 3
947361 3

Trin 3. Importer det tilfældige bibliotek

Du skal bruge det til tilfældigt at arrangere de mulige svar.

947361 4
947361 4

Trin 4. Definer en klasse "QA"

En "QA" vil bestå af et spørgsmål og et korrekt svar og en liste over mulige andre svar. Funktionen _init _ () vil blive kaldt, når du opretter et nyt QA -objekt med funktionen QA (), og dets argumenter sendes videre til den tilsvarende attribut. Type:

klasse QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers

947361 5
947361 5

Trin 5. Opret en liste over QA'er

Tænk på nogle spørgsmål med et rigtigt og nogle forkerte svar. Opret QA -objekter fra hver og sæt dem på en liste. Da listen vil være ret lang, kan du bryde den på tværs af flere linjer for bedre læsbarhed. Alt dette gøres med følgende kode (din tekst kan være anderledes):

qaList = [QA ("Hvor er Minsk?", "i Hviderusland", ["i Rusland", "sådan en by findes ikke"]), QA ("Hvad er Australiens hovedstad?", "Canberra", ["Sydney", "New York", "Australien eksisterer ikke"]), QA ("Hvilket af følgende er ikke på Jorden?", "Sea of Tranquility", ["Mediterranean Sea", "Baltic Sea "," Nordsøen "]), QA (" Hvilket af følgende er ikke et kontinent? "," Arctica ", [" Antarktis "," Amerika "]), QA (" Hvilket af følgende er ikke et afrikansk land ? "," Malaysia ", [" Madagaskar "," Djibouti "," Sydafrika "," Zimbabwe "])]

947361 6
947361 6

Trin 6. Tilføj en variabel, der tæller, hvor mange svar der var korrekte

Sæt den til nul i begyndelsen. Tilføj linjen:

corrCount = 0

947361 7
947361 7

Trin 7. Bland QA -listen

Dette får dine spørgsmål til at vises i en tilfældig rækkefølge. Dette gøres med følgende funktion:

random.shuffle (qaList)

947361 8
947361 8

Trin 8. Lav en loop

Programmet skal gå over hvert punkt på listen og gøre noget med det. Opret sådan en sløjfe med dette udtryk:

for qaItem i qaList:

947361 9
947361 9

Trin 9. Send hvert spørgsmål

Efter sløjfeudtrykket skriver du linjen:

print (qaItem.question)

947361 10
947361 10

Trin 10. Output alle mulige svar

De skal vises i en tilfældig rækkefølge, så det korrekte svar ikke altid er på samme position. De bør også indledes med et tal, så brugeren ikke behøver at indtaste hele svaret igen. Følgende kode gør dette:

print ("Mulige svar er:") mulig = qaItem.otherAnsw + [qaItem.corrAnsw] # firkantede parenteser vender det korrekte svar til listen for sammenkædning med anden liste random.shuffle (muligt) count = 0 # listeindekser starter ved 0 i python mens count <len (muligt): print (str (count + 1) + ":" + muligt [count]) count + = 1

947361 11
947361 11

Trin 11. Tag brugerens input

Fortæl først brugeren, at de skal indtaste nummeret på deres. Kontroller derefter, om det, brugeren har indtastet, virkelig er et tal, der svarer til et svar. Hvis det ikke er tilfældet, skal du fortælle brugeren det igen. Brug denne kode (uden for while loop, du oprettede til output):

print ("Angiv venligst nummeret på dit svar:") userAnsw = input () mens det ikke er userAnsw.isdigit (): print ("Det var ikke et nummer. Angiv venligst nummeret på dit svar:") userAnsw = input () userAnsw = int (userAnsw) mens ikke (userAnsw> 0 og userAnsw <= len (muligt)): print ("Det tal svarer ikke til noget svar. Angiv nummeret på dit svar:") userAnsw = input ()

947361 12
947361 12

Trin 12. Kontroller, om brugerens svar var korrekt

For at gøre dette skal du hente teksten i det svar, som brugeren har indtastet et tal for, og sammenligne det med teksten i det korrekte svar. Hvis de er ens, var brugerens svar korrekt, og variablen corrCount skal øges med 1. Ellers er det forkert, og brugeren skal få at vide det korrekte svar. Endelig skal du udskrive en tom linje for at tilføje lidt plads til det næste spørgsmål. Indtast følgende kode:

hvis muligt [userAnsw-1] == qaItem.corrAnsw: print ("Dit svar var korrekt.") corrCount + = 1 andet: print ("Dit svar var forkert.") print ("Korrekt svar var:" + qaItem. corrAnsw) print ("")

947361 13
947361 13

Trin 13. Send en konklusion

I sidste ende vil brugeren sandsynligvis vide, hvor mange spørgsmål de fik rigtigt. Så fortæl dem ved at tilføje følgende udtryk uden for forløkken:

print ("Du besvarede" + str (corrCount) + "af" + str (len (qaList)) + "spørgsmål korrekt.")

947361 14
947361 14

Trin 14. Kontroller din kode

Vær særlig opmærksom på indrykningen. Din komplette kode skal se sådan ud nu:

import tilfældig klasse QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA ("Hvor er Minsk?", "i Hviderusland", ["i Rusland", "sådan en by findes ikke"]), QA ("Hvad er Australiens hovedstad?", "Canberra", ["Sydney", "New York", "Australien eksisterer ikke"]), QA ("Hvilket af følgende er ikke på Jorden?", "Sea of Tranquility", ["Mediterranean Sea", "Baltic Sea", "North Sea"]), QA ("Hvilket af følgende er ikke et kontinent? "," Arctica ", [" Antarctica "," America "]), QA (" Hvilket af følgende er ikke et afrikansk land? "," Malaysia ", [" Madagaskar "," Djibouti "," Syd Afrika "," Zimbabwe "])] corrCount = 0 random.shuffle (qaList) for qaItem i qaList: print (qaItem.question) print (" Mulige svar er: ") muligt = qaItem.otherAnsw + [qaItem.corrAnsw] # firkantede parenteser gør det korrekte svar til en liste til sammenkædning med en anden tilfældig liste. bland (muligt) antal = 0 # listeindekser starter ved 0 i n python mens count <len (muligt): print (str (count + 1) + ":" + muligt [count]) count + = 1 print ("Angiv venligst nummeret på dit svar:") userAnsw = input () mens det ikke er userAnsw.isdigit (): print ("Det var ikke et tal. Indtast venligst nummeret på dit svar: ") userAnsw = input () userAnsw = int (userAnsw), mens ikke (userAnsw> 0 og userAnsw <= len (muligt)): print (" Det tal svarer ikke til noget svar. Angiv venligst nummeret på dit svar: ") userAnsw = input () hvis muligt [userAnsw-1] == qaItem.corrAnsw: print (" Dit svar var korrekt. ") CorrCount += 1 else: print (" Dit svar var forkert. ") print (" Korrekt svar var: " + qaItem.corrAnsw) print (" ") print (" Du svarede " + str (corrCount) +" af " + str (len (qaList)) +" spørgsmål korrekt. ")

947361 15
947361 15

Trin 15. Kør koden

Hvis du bruger en IDE, skal du klikke på symbolet "Kør" eller menupunkt. Hvis du bruger en tekstredigerer, skal du gemme dit program, lukke editoren og åbne dit program med Python.

Tips

  • Pas på korrekt indrykning. Kode inde i en funktion eller klasse definition er indrykket, ligesom kode inde i en loop. Et Python -program med forkert indrykning fungerer ikke.
  • Tryk på Ctrl+C, hvis du vil afbryde spillet og ikke afslutte det.
  • Hvis du erstatter hvert opkald af input () med et opkald fra raw_input (), fungerer dette program i Python 2, men stopper med at arbejde i Python 3.

Anbefalede: