Hvordan lage et quiz -spill i Python (med bilder)

Innholdsfortegnelse:

Hvordan lage et quiz -spill i Python (med bilder)
Hvordan lage et quiz -spill i Python (med bilder)

Video: Hvordan lage et quiz -spill i Python (med bilder)

Video: Hvordan lage et quiz -spill i Python (med bilder)
Video: Как сделать самолетик из бумаги Как сделать самолетик из бумаги 2024, Kan
Anonim

Hvis du vil lære Python, er det godt å begynne med noen enkle tekstbaserte spill. Denne artikkelen viser deg hvordan du lager et quiz -spill.

Trinn

947361 1
947361 1

Trinn 1. Installer Python hvis du ikke allerede har gjort det

Det er to hovedversjoner av Python: Python 2 og Python 3. De kan ikke byttes ut, og støtten for Python 2 slutter i 2020, så denne artikkelen antar at du installerer Python 3.

947361 2
947361 2

Trinn 2. Åpne en ny fil i et tekstredigeringsprogram eller Python IDE

Gi det et beskrivende navn som ender med.py.

947361 3
947361 3

Trinn 3. Importer det tilfeldige biblioteket

Du trenger det for å tilfeldig ordne mulige svar.

947361 4
947361 4

Trinn 4. Definer en klasse "QA"

En "QA" vil bestå av et spørsmål og et riktig svar, og en liste over mulige andre svar. Funksjonen _init _ () blir kalt når du oppretter et nytt QA -objekt med funksjonen QA (), med argumentene videreført til det tilsvarende attributtet. Type:

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

947361 5
947361 5

Trinn 5. Lag en liste over QA

Tenk på noen spørsmål med ett riktig og noen feil svar. Lag QA -objekter fra hver og legg dem i en liste. Siden listen vil være ganske lang, kan du bryte den på tvers av flere linjer for bedre lesbarhet. Alt dette gjøres med følgende kode (teksten din kan være annerledes):

qaList = [QA ("Hvor er Minsk?", "i Hviterussland", ["i Russland", "en slik by eksisterer ikke"]), QA ("Hva er hovedstaden i Australia?", "Canberra", ["Sydney", "New York", "Australia eksisterer ikke"]), QA ("Hvilket av følgende er ikke på jorden?", "Sea of Tranquility", ["Mediterranean Sea", "Baltic Sea "," Nordsjøen "]), QA (" Hvilket av følgende er ikke et kontinent? "," Arctica ", [" Antarktis "," Amerika "]), QA (" Hvilket av følgende er ikke et afrikansk land ? "," Malaysia ", [" Madagaskar "," Djibouti "," Sør -Afrika "," Zimbabwe "])]

947361 6
947361 6

Trinn 6. Legg til en variabel som teller hvor mange svar som var riktige

Sett den til null i begynnelsen. Legg til linjen:

corrCount = 0

947361 7
947361 7

Trinn 7. Bland QA -listen i bland

Dette vil få spørsmålene dine til å vises i en tilfeldig rekkefølge. Dette gjøres med følgende funksjon:

random.shuffle (qaList)

947361 8
947361 8

Trinn 8. Lag en løkke

Programmet bør gå over hvert element på listen og gjøre noe med det. Lag en sløyfe med dette uttrykket:

for qaItem i qaList:

947361 9
947361 9

Trinn 9. Skriv ut hvert spørsmål

Etter sløyfeuttrykket skriver du linjen:

print (qaItem.question)

947361 10
947361 10

Trinn 10. Skriv ut alle mulige svar

De skal vises i en tilfeldig rekkefølge, slik at det riktige svaret ikke alltid er på samme posisjon. De bør også gå foran et tall slik at brukeren ikke trenger å skrive inn hele svaret igjen. Følgende kode gjør dette:

print ("Mulige svar er:") mulig = qaItem.otherAnsw + [qaItem.corrAnsw] # firkantede parenteser gjør riktig svar til liste for sammenkobling med annen liste random.shuffle (possible) count = 0 # listeindekser starter på 0 i python mens count <len (mulig): print (str (count + 1) + ":" + mulig [count]) count + = 1

947361 11
947361 11

Trinn 11. Ta brukerens innspill

Fortell først brukeren at de må angi nummeret til sine. Sjekk deretter om det brukeren skrev inn virkelig er et tall som tilsvarer et svar. Fortell brukeren på nytt hvis det ikke er det. Bruk denne koden (utenfor mens -sløyfen du opprettet for utgangen):

print ("Vennligst skriv inn svarnummeret ditt:") userAnsw = input () mens det ikke er userAnsw.isdigit (): print ("Det var ikke et tall. Skriv inn nummeret på svaret ditt:") userAnsw = input () userAnsw = int (userAnsw) mens ikke (userAnsw> 0 og userAnsw <= len (mulig)): print ("Det tallet tilsvarer ikke noe svar. Skriv inn nummeret på svaret ditt:") userAnsw = input ()

947361 12
947361 12

Trinn 12. Sjekk om brukerens svar var riktig

For å gjøre dette, hent teksten til svaret som brukeren skrev inn et tall for, og sammenlign det med teksten i det riktige svaret. Hvis de er de samme, var brukerens svar riktig og variabelen corrCount bør økes med 1. Ellers er det feil og brukeren skal få det riktige svaret. Til slutt skriver du ut en tom linje for å legge til litt plass til neste spørsmål. Skriv inn følgende kode:

hvis mulig [userAnsw-1] == qaItem.corrAnsw: print ("Svaret ditt var riktig.") corrCount + = 1 annet: print ("Svaret ditt var feil.") print ("Riktig svar var:" + qaItem. corrAnsw) print ("")

947361 13
947361 13

Trinn 13. Skriv ut en konklusjon

Til slutt vil brukeren sannsynligvis vite hvor mange spørsmål de fikk riktig. Så fortell dem ved å legge til følgende uttrykk utenfor forløkken:

print ("Du svarte" + str (corrCount) + "av" + str (len (qaList)) + "spørsmål riktig.")

947361 14
947361 14

Trinn 14. Sjekk koden din

Vær spesielt oppmerksom på innrykket. Den komplette koden din skal se slik ut nå:

importer tilfeldig klasse QA: def _init _ (self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA ("Hvor er Minsk?", "i Hviterussland", ["i Russland", "en slik by eksisterer ikke"]), QA ("Hva er hovedstaden i Australia?", "Canberra", ["Sydney", "New York", "Australia eksisterer ikke"]), QA ("Hvilket av følgende er ikke på jorden?", "Sea of Tranquility", ["Mediterranean Sea", "Baltic Sea", "North Sea"]), QA ("Hvilket av følgende er ikke et kontinent? "," Arctica ", [" Antarctica "," America "]), QA (" Hvilket av følgende er ikke et afrikansk land? "," Malaysia ", [" Madagaskar "," Djibouti "," Sør Afrika "," Zimbabwe "])] corrCount = 0 random.shuffle (qaList) for qaItem i qaList: print (qaItem.question) print (" Mulige svar er: ") mulig = qaItem.otherAnsw + [qaItem.corrAnsw] # firkantede parenteser gjør det riktige svaret til en liste for sammenkobling med en annen tilfeldig liste. blanding (mulig) count = 0 # listeindekser starter med 0 i n python mens count <len (mulig): print (str (count + 1) + ":" + mulig [count]) count + = 1 print ("Skriv inn nummeret på svaret ditt:") userAnsw = input () mens ikke userAnsw.isdigit (): print ("Det var ikke et tall. Skriv inn nummeret på svaret ditt: ") userAnsw = input () userAnsw = int (userAnsw) mens ikke (userAnsw> 0 og userAnsw <= len (mulig)): print (" Det tallet tilsvarer ikke noe svar. Skriv inn nummeret på svaret ditt: ") userAnsw = input () hvis mulig [userAnsw-1] == qaItem.corrAnsw: print (" Svaret ditt var riktig. ") CorrCount += 1 else: print (" Svaret ditt var feil. ") print (" Riktig svar var: " + qaItem.corrAnsw) print (" ") print (" Du svarte " + str (corrCount) +" av " + str (len (qaList)) +" spørsmål riktig. ")

947361 15
947361 15

Trinn 15. Kjør koden

Hvis du bruker en IDE, klikker du på "Kjør" -symbolet eller menyelementet. Hvis du bruker et tekstredigeringsprogram, lagrer du programmet, lukker redigeringsprogrammet og åpner programmet med Python.

Tips

  • Se opp for riktig innrykk. Kode inne i en funksjon eller klasse definisjon er innrykket, som er kode inne i en sløyfe. Et Python -program med feil innrykk vil ikke fungere.
  • Trykk Ctrl+C hvis du vil avbryte spillet og ikke fullføre det.
  • Hvis du erstatter hver samtale med input () med en samtale med raw_input (), fungerer dette programmet i Python 2, men slutter å fungere i Python 3.

Anbefalt: