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
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.
Trin 2. Åbn en ny fil i en teksteditor eller dit Python IDE
Giv det et beskrivende navn, der slutter med.py.
Trin 3. Importer det tilfældige bibliotek
Du skal bruge det til tilfældigt at arrangere de mulige svar.
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
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 "])]
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
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)
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:
Trin 9. Send hvert spørgsmål
Efter sløjfeudtrykket skriver du linjen:
print (qaItem.question)
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
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 ()
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 ("")
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.")
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. ")
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.