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
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.
Trinn 2. Åpne en ny fil i et tekstredigeringsprogram eller Python IDE
Gi det et beskrivende navn som ender med.py.
Trinn 3. Importer det tilfeldige biblioteket
Du trenger det for å tilfeldig ordne mulige svar.
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
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 "])]
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
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)
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:
Trinn 9. Skriv ut hvert spørsmål
Etter sløyfeuttrykket skriver du linjen:
print (qaItem.question)
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
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 ()
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 ("")
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.")
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. ")
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.