Kuidas teha viktoriinimängu Pythonis (piltidega)

Sisukord:

Kuidas teha viktoriinimängu Pythonis (piltidega)
Kuidas teha viktoriinimängu Pythonis (piltidega)

Video: Kuidas teha viktoriinimängu Pythonis (piltidega)

Video: Kuidas teha viktoriinimängu Pythonis (piltidega)
Video: First Ever SDXL Training With Kohya LoRA - Stable Diffusion XL Training Will Replace Older Models 2024, Aprill
Anonim

Kui soovite Pythoni õppida, on hea alustada mõne lihtsa tekstipõhise mänguga. See artikkel näitab teile, kuidas teha viktoriinimängu.

Sammud

947361 1
947361 1

Samm 1. Installige Python, kui te pole seda juba teinud

Pythonil on kaks peamist versiooni: Python 2 ja Python 3. Neid ei saa vahetada ja Python 2 tugi lõpeb 2020. aastal, seega eeldatakse selles artiklis, et installite Python 3.

947361 2
947361 2

Samm 2. Avage uus fail tekstiredaktoris või oma Pythoni IDE -s

Andke sellele kirjeldav nimi, mis lõpeb.py.

947361 3
947361 3

Samm 3. Importige juhuslik kogu

Te vajate seda võimalike vastuste juhuslikuks korraldamiseks.

947361 4
947361 4

Samm 4. Määratlege klass "QA"

Kvaliteedikontroll koosneb küsimusest ja õigest vastusest ning võimalike muude vastuste loendist. Funktsiooni _init _ () kutsutakse esile iga kord, kui loote uue kvaliteedikontrolli objekti funktsiooniga QA (), selle argumendid edastatakse vastavale atribuudile. Tüüp:

klassi QA: def _init _ (ise, küsimus, correctAnswer, otherAnswers): self.question = küsimus self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers

947361 5
947361 5

Samm 5. Looge QA -de loend

Mõelge mõnele küsimusele ühe õige ja mõne vale vastusega. Looge igast kvaliteedikontrolli objekt ja pange need loendisse. Kuna loend on üsna pikk, saate parema loetavuse huvides selle mitme rea vahel jagada. Kõik see toimub järgmise koodiga (teie tekst võib olla erinev):

qaList = [QA ("Kus on Minsk?", "Valgevenes", ["Venemaal", "sellist linna pole olemas"]), QA ("Mis on Austraalia pealinn?", "Canberra", ["Sydney", "New York", "Austraaliat pole olemas"]), QA ("Milline järgmistest ei ole Maal?", "Rahu meri", ["Vahemeri", "Läänemeri" "," Põhjameri "]), QA (" Milline järgmistest ei ole kontinent? "," Arktika ", [" Antarktika "," Ameerika "]), QA (" Milline järgmistest ei ole Aafrika riik? ? "," Malaisia ", [" Madagaskar "," Djibouti "," Lõuna -Aafrika "," Zimbabwe "]

947361 6
947361 6

Samm 6. Lisage muutuja, mis loeb õigete vastuste arvu

Seadistage see alguses nulli. Lisage rida:

corrCount = 0

947361 7
947361 7

Samm 7. Segage QA loend

Nii kuvatakse teie küsimused juhuslikus järjekorras. Seda tehakse järgmise funktsiooniga:

random.shuffle (qaList)

947361 8
947361 8

Samm 8. Tehke silmus

Programm peaks loendi iga üksuse üle vaatama ja sellega midagi ette võtma. Loo selline silmus selle avaldisega:

qaItem jaoks qaList:

947361 9
947361 9

Samm 9. Väljendage iga küsimus

Pärast silmuse avaldist kirjutage rida:

print (qaItem.question)

947361 10
947361 10

Samm 10. Väljendage kõik võimalikud vastused

Need peaksid ilmuma juhuslikus järjekorras, et õige vastus poleks alati samas kohas. Samuti peaks nende ees olema number, et kasutaja ei peaks kogu vastust uuesti sisestama. Järgmine kood teeb seda:

print ("Võimalikud vastused on:") võimalik = qaItem.otherAnsw + [qaItem.corrAnsw] # nurksulg muudavad õige vastuse loendiks, mis ühendatakse teiste loenditega random.shuffle (võimalik) count = 0 # loendiindeksid algavad 0 -st pythonis samas loend <len (võimalik): print (str (loend + 1) + ":" + võimalik [loend]) loendus + = 1

947361 11
947361 11

Samm 11. Võtke kasutaja sisend

Esiteks öelge kasutajale, et ta peab sisestama oma numbri. Seejärel kontrollige, kas kasutaja sisestatud number on tõesti number, mis vastab vastusele. Kui ei, siis rääkige sellest kasutajale uuesti. Kasutage seda koodi (väljaspool väljundi jaoks loodud loopi):

print ("Palun sisestage oma vastuse number:") userAnsw = input () samas mitte userAnsw.isdigit (): print ("See ei olnud number. Palun sisestage oma vastuse number:") userAnsw = input () userAnsw = int (userAnsw), kuigi mitte (userAnsw> 0 ja userAnsw <= len (võimalik)): print ("See number ei vasta ühelegi vastusele. Palun sisestage oma vastuse number:") userAnsw = input ()

947361 12
947361 12

Samm 12. Kontrollige, kas kasutaja vastus oli õige

Selleks hankige vastuse tekst, mille jaoks kasutaja sisestas numbri, ja võrrelge seda õige vastuse tekstiga. Kui need on samad, oli kasutaja vastus õige ja muutujat corrCount tuleks suurendada 1 võrra. Muidu on see vale ja kasutajale tuleks öelda õige vastus. Lõpuks printige tühi rida, et lisada järgmisele küsimusele ruumi. Sisestage järgmine kood:

kui võimalik [userAnsw-1] == qaItem.corrAnsw: print ("Teie vastus oli õige.") corrCount + = 1 else: print ("Teie vastus oli vale.") print ("Õige vastus oli:" + qaItem. corrAnsw) print ("")

947361 13
947361 13

Samm 13. Väljundi järeldus

Lõpuks soovib kasutaja ilmselt teada, kui palju küsimusi nad õigesti said. Nii et öelge neile, lisades järgmise avaldise väljaspool silmust:

print ("Sa vastasid" + str (corrCount) + " /" + str (len (qaList)) + "küsimused õigesti.")

947361 14
947361 14

Samm 14. Kontrollige oma koodi

Pöörake erilist tähelepanu taandele. Teie täielik kood peaks nüüd välja nägema selline:

import juhusliku klassi QA: def _init _ (ise, küsimus, õige vastus, muu vastus): self.question = küsimus self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA ("Kus on Minsk?", "Valgevenes", ["Venemaal", "sellist linna pole olemas"]), QA ("Mis on Austraalia pealinn?", "Canberra", ["Sydney", "New York", "Austraaliat pole olemas")]), QA ("Millist järgmistest ei ole Maal?", "Rahu meri", ["Vahemeri", "Läänemeri", "Põhjameri"]), QA ("Milline järgmistest ei ole kontinent? "," Arktika ", [" Antarktika "," Ameerika "]), QA (" Milline järgmistest ei ole Aafrika riik? "," Malaisia ", [" Madagaskar "," Djibouti "," Lõuna Africa "," Zimbabwe "])] corrCount = 0 random.shuffle (qaList) for qaItem in qaList: print (qaItem.question) print (" Võimalikud vastused on: ") võimalik = qaItem.otherAnsw + [qaItem.corrAnsw] # nurksulgud muudavad õige vastuse loendiks, et ühendada see teiste juhuslike loenditega. juhuslik (võimalik) loendus = 0 # loendiindeksid algavad 0 -st n python while count <len (võimalik): print (str (count + 1) + ":" + võimalik [count]) count + = 1 print ("Palun sisesta oma vastuse number:") userAnsw = input () kuigi mitte userAnsw.isdigit (): print ("See polnud number. Palun sisestage oma vastuse number: ") userAnsw = input () userAnsw = int (userAnsw) samas mitte (userAnsw> 0 ja userAnsw <= len (võimalik)): print (" See number ei vasta ühelegi vastusele. Palun sisestage oma vastuse number: ") userAnsw = input () võimaluse korral [userAnsw-1] == qaItem.corrAnsw: print (" Teie vastus oli õige. ") CorrCount += 1 else: print (" Teie vastus oli vale. ") print (" Õige vastus oli: " + qaItem.corrAnsw) print (" ") print (" Sa vastasid " + str (corrCount) +" / " + str (len (qaList)) +" küsimused õigesti. ")

947361 15
947361 15

Samm 15. Käivitage kood

Kui kasutate IDE -d, klõpsake sümbolil "Käivita" või menüüelemendil. Kui kasutate tekstiredaktorit, salvestage programm, sulgege redaktor ja avage programm Pythoni abil.

Näpunäiteid

  • Jälgige õiget taanet. Funktsiooni või klassi määratluse sees olev kood on taandatud, nagu ka silmuse sees olev kood. Vale taandega Pythoni programm ei tööta.
  • Kui soovite mängu katkestada ja mitte lõpetada, vajutage klahvikombinatsiooni Ctrl+C.
  • Kui asendate iga sisendkõne () kõne raw_input () kõnega, töötab see programm Python 2 -s, kuid lõpetab töötamise Python 3 -s.

Soovitan: